【发布时间】:2014-10-15 15:45:26
【问题描述】:
这一定很简单,但我不明白为什么不允许这样做:
var testList = new List<int> { 2, 3, 400, 304, 50, 41 };
testList.Select(x => Console.WriteLine(x));
但这很好:
testList.Select(x => x * 2);
我在哪里误解 LINQ 导致这种混乱?
【问题讨论】:
-
一个 select 语句操作列表并返回一个新的。您应该在 List 类型上使用 ForEach
-
你可能想使用
testList.ForEach(i => Console.WriteLine(i)) -
LINQ 是一种用于提问的语言,而不是用于引起副作用的语言。不要使用 LINQ 表达式作为产生副作用的控制流;有一个非常好的
foreach循环已经意味着“对这个集合的每个成员造成副作用”。