Dee*_*Nag 2 c# lambda extension-methods
var numbers=new int[]{1,2,3};
var numbers1=numbers.Select(n=>n);
var numbers2=numbers.Select(n=>n.ToString());
var numbers3=numbers.Select(n=>new {Number=n, Even=n%2==0});
Run Code Online (Sandbox Code Playgroud)
扩展函数SELECT的输出怎么可能是任何类型的?
它是使用以下签名定义的通用扩展方法:
public static IEnumerable<Tresult> Select<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, TResult> selector);
Run Code Online (Sandbox Code Playgroud)
通过source和selector参数中存在的类型信息,编译器可以推断出使用的类型,因此您无需为其明确命名.