如何选择(int.Parse)在这样的Linq表达式中工作?C#Linq和lambda
"1,2,3,4,5".Split(',').Select(int.Parse).ToList(); //ok
"1,2,3,4,5".Split(',').Select(x => int.Parse(x)).ToList(); //ok
为什么Console.Writeline的例子返回编译错误?
"1,2,3,4,5".Split(',').Select(Console.WriteLine).ToList(); //error
"1,2,3,4,5".Split(',').Select(x => Console.WriteLine(x)).ToList(); //ok
当它被允许省略拉姆达像(X => ....(X))
第4行不应编译为 – fubo
第3个和第4个正试图产生一个List。你认为那个列表可以是*列表*吗? – AakashM
非正式地,'选择'期望它的参数是一个函数,它需要'T's并生成'U's。通常情况下会发生这种情况,例如,如果您传递'int.Parse',编译器会推断出'T = string'和'U = int'。然而,'T'和'U'必须是类型,它们不能是'空白'。 'Console.WriteLine'返回不是有效类型的'void',所以第3行和第4行不会编译(两者)。 –
CompuChip