首页 > 解决方案 > Visual Studio:查找循环内使用的类型实例

问题描述

这更像是“我如何在 Visual Studio/其他重构工具中做到这一点?” 而不是编码问题。

下面的示例代码显示了一个未解析的数据库对象 people,(在本例中为 IMongoQueryable)被传递到 foreach 循环。

    var people = database.GetMongoCollection<Person>; // Type is IMongoQueryable<Person>
    
    foreach (person in people) 
    {
        string address = person.Address; // Triggers a DB Query every iteration
        DoSomething(address);
    }

在此示例中,循环导致发出“N”个查询。在传递给循环之前通过调用 ToListAsync() 来解析数据集会更有效,因为只会发出一个查询。

我在我们的解决方案中发现了几个发生这种情况的例子,我相信可能还有数百个例子。但代码库已有 10 年历史,庞大、架构糟糕、性能不佳(不是我的代码),我不知道如何找到它们。

如何找到循环内使用的类型(例如 IMongoQueryable)的所有实例?

标签: c#visual-studioresharper

解决方案


推荐阅读