【发布时间】:2014-01-28 18:36:17
【问题描述】:
我有一个客户列表,我只想返回客户名称(加入名字和姓氏)。可以使用以下 Linq 轻松完成:
return customers.Select(a => string.Format("{0} {1}", a.Forename, a.Surname).First();
如果我理解正确,“选择”只会针对语句要求的行运行,这是正确的。所以对于上面的代码,而不是选择构建一个字符串列表并且只使用第一个(扔掉其他的),select语句只运行第一行(由.First()要求)然后终止,所以只有为一行构建字符串(返回的第一个)。对吗?
显然在 .Select() 和 .First 之间放置一个“.ToList()”会导致它构建一个字符串列表,然后只取第一个,但是上面的 Linq 有没有其他方法可以最终做太多的工作?这是我觉得我应该已经确定答案的事情,但最好确认一下。
【问题讨论】:
-
选择返回一个
IEnumerable,仅在需要时才进行惰性求值。