Шаблон поиска ReSharper для.First([С условием]), игнорирующий.First()

Как гласит заголовок, есть ли способ использовать шаблон поиска ReSharper для поиска всех экземпляров.First (), который содержит условие, игнорируя.First()?

Мотивация для этого поиска в ответ на вопрос
Почему LINQ .Where(предикат).First () быстрее, чем.First (предикат)?

Мы хотели бы увидеть, сколько раз мы используем First () с условием. Поиск будет расширен для поиска.FirstOrDefault().

2 ответа

Решение

Вы создаете шаблон для этого о том, как вы ожидаете. Перейдите в ReSharper > Найти> Поиск по шаблону и введите этот шаблон:

$enumerable$.First($args$)

Затем в списке заполнителей справа создайте два заполнителя:

  • Добавьте Placeholder > Expression и назовите его enumerable, Не указывайте тип (я пытался указать тип как IEnumerable<out T> и потомки, но по какой-то причине, которые не смогли найти какое-либо использование; но если вы не указываете тип, это работает).
  • Добавить заполнитель> Аргумент, назовите его argsустановите флажок "Ограничить минимальное количество аргументов" и оставьте значение 1.

Я проверил это, и он нашел list.First(i => i%2 == 0) но нет list.First()кажется, именно то, что вы просите.

Вы можете просто использовать VisualStudio Find и использовать параметр RegEx

Что-то вроде: .First(\({.+}\));

И вы также можете использовать Find and Replace, чтобы изменить все ваши предикаты на Where +First`

Другие вопросы по тегам