如何将以下内容转换为lambda表达式(方法语法)

本文关键字:表达式 lambda 方法 语法 转换 | 更新日期: 2023-09-27 18:14:38

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 };

如何将以下内容转换为lambda表达式(方法语法)

你可以尝试这样做:

var pairs = numbersA.SelectMany(a => numbersB.Where(b => b>a)
                    .Select(b => new { a, b }));

请查看这个。net Fiddle

SelectMany是什么?

将序列中的每个元素投影到IEnumerable中,并平坦化将结果序列合并为一个序列。

因此,从包含当前anumbersB数组中所有大于a的数字之间的所有组合的SelectMany的结果中,我们选择具有两个属性的匿名类型ab。对numbersA中的所有数字执行此操作,我们得到了我们想要的