如何在linq中加入两个列表

时间:2010-12-13 13:09:05

标签: c# linq

我有两个列表A,B包含整数值,列表A包含40到1列表B包含40到79我喜欢除40以外的两个值并使用Linq将其存储在另一个列表中。结果列表如下{80 80 ...}。我怎样才能做到这一点?是否有可能做到这一点?

4 个答案:

答案 0 :(得分:5)

听起来你正试图通过索引以成对的方式“加入”这些:每个列表中的第一个元素,然后是第二个元素等。这表明你想要引入的Zip。 NET 4:

var zipped = list1.Zip(list2, (x1, x2) => x1 + x2);

如果您使用的是.NET 3.5,则可以使用相同方法的单独实现,例如MoreLINQ中的方法。

编辑:或者,Eric Lippert posted some source code for Zip不久前。

答案 1 :(得分:3)

查看IEnumerable<T>.Join()方法。

答案 2 :(得分:2)

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        // Two source arrays.
        var array1 = new int[] { 1, 2, 3, 4, 5 };
        var array2 = new int[] { 6, 7, 8, 9, 10 };

        // Add elements at each position together.
        var zip = array1.Zip(array2, (a, b) => (a + b));

        // Look at results.
        foreach (var value in zip)
        {
            Console.WriteLine(value);
        }
    }
}

---程序的输出---

7 9 11 13 15

答案 3 :(得分:1)