这一定很简单,但我不明白为什么不允许这样做:
var testList = new List<int> { 2, 3, 400, 304, 50, 41 };
testList.Select(x => Console.WriteLine(x));
Run Code Online (Sandbox Code Playgroud)
但这很好:
testList.Select(x => x * 2);
Run Code Online (Sandbox Code Playgroud)
我在哪里误解LINQ导致这种混乱?
问题是您传递给的函数Select()必须返回一个值,因为其目的Select()是将序列的元素投影到其他值中.但是Console.WriteLine(x)返回void(没有值).
.Select取一个Func<TSource, TResult>(一个带有a TSource并返回的lambda TResult).
因为Console.WriteLine就是void,你的拉姆达不返回任何东西,因此不符合要求.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |