C# Linq and lambda -
how select(int.parse) work in such linq expression?
"1,2,3,4,5".split(',').select(int.parse).tolist(); //ok "1,2,3,4,5".split(',').select(x => int.parse(x)).tolist(); //ok why example console.writeline returns compilation error?
"1,2,3,4,5".split(',').select(console.writeline).tolist(); //error "1,2,3,4,5".split(',').select(x => console.writeline(x)).tolist(); //ok when allowed omit lambda (x => ....(x))
console.writeline int.parse so-called method groups. groups of methods. because of various overloads of methods. can 1 method, or multiple methods.
a method group can converted delegate if compiler can infer method of group meant. example method group int.parse can delegate int.parse(string) if func<string, int>is expected.
this works in first example. select expects func<t, t2> , t set of type string. however, not work second example. because while console.writeline method group, not single method in group corresponds required func<t, t2> because return type of all of methods in group void.
Comments
Post a Comment