[c#]更好地使用静态可枚举 FirstOrDefault 在该对象的方法吗?

标签: Linq .Net C#
发布时间: 2017/2/28 23:23:20
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我在工作时对一些代码 Resharper 了 '建议' 使用静态 Enumberable.FirstOrDefault():

原本与此类似的代码︰

var myCountry = myCountryRepository.GetByCode(code); // returns IEnumerable of Country
Country country = myCountry.FirstOrDefault();

建议对此更改的最后一行︰

Country country = Enumerable.FirstOrDefault(myCountry);

通过使用静态方法是有性能增益?

解决方法 1:

不是,还有没有性能增益︰ 这两次调用是绝对相同。当你写

Country country = myCountry.FirstOrDefault();

编译器可以识别您正在调用扩展方法,并悄悄地将它转换为这︰

Country country = Enumerable.FirstOrDefault(myCountry);
赞助商