Пока я работал над некоторым кодом, у Resharper было "предложение" использовать статический Enumberable.FirstOrDefault():
Первоначально код был похож на этот:
var myCountry = myCountryRepository.GetByCode(code); // returns IEnumerable of Country
Country country = myCountry.FirstOrDefault();
Предложение изменило последнюю строку:
Country country = Enumerable.FirstOrDefault(myCountry);
Существует ли увеличение производительности при использовании статического метода?
Нет, нет увеличения производительности: два вызова абсолютно идентичны. Когда вы пишете
Country country = myCountry.FirstOrDefault();
компилятор распознает, что вы вызываете метод расширения, и спокойно конвертирует его в это:
Country country = Enumerable.FirstOrDefault(myCountry);
var
может быть изменен на явный тип и наоборот.