我写了这样的代码:
System.IO.File.ReadAllLines("c://test.txt")
.Select(val => Console.WriteLine(val)
);
Run Code Online (Sandbox Code Playgroud)
我收到编译错误:
无法从用法推断出方法'System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)'的类型参数.尝试显式指定类型参数.
WriteLine可以接受字符串和对象作为参数,这可能是错误的来源,但我该如何重写呢?
该Select方法采用a Func<TSource, TResult>,但返回类型Console.WriteLine为void,即根本没有值.因此,在这种情况下TResult将void,显然,返回类型Select不能IEnumerable<void>(即"没什么序列" ...)
传递给lambda表达式Select 有返回值.如果您只想打印结果File.ReadAllLines,请使用for或foreach循环.