我想弄清楚如何开始使用linq和lambda表达式.
首先,如果有人可以指导我学习一些好的教程,那将非常感激.
其次:
我正在尝试使用Select方法选择所有等于特定值的值.
我注意到select可以定义为
Select<TSource,TResult>(...lambda expression...)
Run Code Online (Sandbox Code Playgroud)
现在为此我想选择所有等于5的数字.
int[] numbers = { 1, 2, 3, 4, 5, 5, 5, 6, 7, 8 };
IEnumerable<int> res = numbers.Select( x=>5 );
Run Code Online (Sandbox Code Playgroud)
这不起作用,我只是不明白这是如何工作的.在什么情况下,我应该定义TSource和TResult,他们会在这种情况下怎么办?
提前致谢!
dle*_*lev 14
Select()用于将旧序列的每个成员投影到新序列的新成员中.要进行过滤,请使用Where():
var evens = numbers.Where(x => x % 2 == 0);
var theFiveSequence = numbers.Where(x => x == 5);
Run Code Online (Sandbox Code Playgroud)
使用的示例Select()可能是将每个数字乘以2:
var doubledNumbers = numbers.Select(x => 2*x);
Run Code Online (Sandbox Code Playgroud)
您也可以将这些方法组合在一起:
var doubledNumbersLessThanTen = numbers.Select(x => 2*x).Where(x < 10);
Run Code Online (Sandbox Code Playgroud)
关于LINQ需要记住的两件重要事情:
foreach循环,或致电.ToList(),.ToArray()等等.