正如标题所述,有没有办法使用 ReSharper 搜索模式来查找包含条件的 .First() 的所有实例,而忽略 .First()?
此搜索的动机是回答
为什么 LINQ .Where(predicate).First() 比 .First(predicate) 快这个问题?
我们想看看我们在条件下使用了多少次 First()。搜索将扩展到查找 .FirstOrDefault()。
正如标题所述,有没有办法使用 ReSharper 搜索模式来查找包含条件的 .First() 的所有实例,而忽略 .First()?
此搜索的动机是回答
为什么 LINQ .Where(predicate).First() 比 .First(predicate) 快这个问题?
我们想看看我们在条件下使用了多少次 First()。搜索将扩展到查找 .FirstOrDefault()。
您为此创建了一个关于您所期望的方式的模式。转到 ReSharper > Find > Search with Pattern,然后输入此模式:
$enumerable$.First($args$)
然后在右边的占位符列表中,创建两个占位符:
enumerable
。不要指定类型(我尝试将类型指定为IEnumerable<out T>
和后代,但由于某种原因未能找到任何用法;但如果您不指定类型,它可以工作)。args
,选中“限制最小参数数量”复选框,并将数字设置为 1。我对此进行了测试,它发现list.First(i => i%2 == 0)
但没有list.First()
,所以看起来正是您所要求的。
您可以只使用 VisualStudio 查找并使用 RegEx 选项
就像是:.First(\({.+}\));
您还可以使用 Find and Replace 将所有谓词更改为Where +
First`