如何转换以下ino lambda表达式(方法语法)?

时间:2015-09-25 07:52:53

标签: c# linq

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

1 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

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

请参阅此.NET Fiddle

SelectMany是什么?

  

将序列的每个元素投影到IEnumerable并展平   得到的序列成一个序列。

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