LINQ - 从两个数组中选择

时间:2016-04-19 15:26:43

标签: c# linq

我有一个查询语法表达式,我无法将其转换为扩展方法语法表达式。

这是原始表达:

List<int> arr1 = new List<int>();
List<int> arr2 = new List<int>();

var nerArr = from a1 in arr1
                from a2 in arr2
                let sum = a1 + a2
                where sum > 10
                where sum < 20
                select new { a1, a2, sum };

感谢。

1 个答案:

答案 0 :(得分:0)

与往常一样,使用Method语法更简单 - 虽然交叉连接看起来有点奇怪

var nerArr2 = arr1.Join(arr2, x => true, y => true, (a1,a2) => new {a1,a2,sum=a1+a2})
                 .Where(x => x.sum > 10 && x.sum <20);

实例(显示原始和此实现):http://rextester.com/MSY85791

您也可以使用SelectMany执行此操作,如其他地方所述。