什么相当于lambda表达式中的以下代码片段?
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs =
from a in numbersA
from b in numbersB
where a < b
select new { a, b };
答案 0 :(得分:10)
以下是使用方法语法的LINQ表达式(与查询语法相对):
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
pairs = numbersA
.SelectMany(_ => numbersB, (a, b) => new { a, b })
.Where(x => x.a < x.b);
原始查询被翻译成:
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
pairs = numbersA
.SelectMany(_ => numbersB, (a, b) => new { a, b })
.Where(x => x.a < x.b)
.Select(x => new { x.a, x.b });
但是,最后Select
不是必需的,可以删除。
答案 1 :(得分:3)
请查看LINQ to Lambda翻译的链接