无论如何,这个LINQ最终可能会做太多的工作?

Pau*_*eld 4 c# linq

我有一个客户列表,我只想返回客户名称(加入姓名和姓氏).可以使用以下Linq轻松完成:

return customers.Select(a => string.Format("{0} {1}", a.Forename, a.Surname).First();
Run Code Online (Sandbox Code Playgroud)

如果我理解正确的话,"选择"只会针对声明所要求的行运行.因此对于上面的代码,而不是选择构建字符串列表并且仅使用第一个字符串(抛弃其他字符串),select语句仅针对第一行运行(由.First()要求)然后终止,因此仅是否为一行构建了字符串(第一行返回).那是对的吗?

显然在.Select()和.First之间放置一个".ToList()"将导致它构建一个字符串列表然后只取第一个,但是上面的Linq可能还有其他任何方式可以做到太多的工作?这是我觉得我应该已经确定答案的事情,但最好确认一下.

Ser*_*rvy 5

[...]所以只有一行的字符串构建(第一行返回).那是对的吗?

那是正确的.

显然在.Select()和.First之间放置一个".ToList()"将导致它构建一个字符串列表然后只取第一个

再次纠正.

有没有其他方式上面的Linq可能最终做了太多的工作?

不,你有什么就好了.

我把它First放在一个新的行上,就这样没有水平滚动,所以读者会注意到它被调用,因为它相当重要,但是没有必要改变代码.