将一个列表的部分添加到另一个列表

时间:2014-06-29 12:40:25

标签: c# .net

我有两个名单,A& B. B包含100个元素。如何添加第20~30个元素从B列出A.我知道有AddRange,但对我来说,它会将列表B中的所有元素添加到列表A.有没有办法在不使用循环?

2 个答案:

答案 0 :(得分:7)

假设两个列表具有相同的基础类型,您可以使用LINQ的Skip()Take()方法从第二个列表中获取所需的项目范围:

var a = new List<string>();
// add 100 elements to a

var b = new List<string>();
// add 100 elements to b

a.AddRange(b.Skip(19).Take(11));  // add items 20 through 30 from b to a

答案 1 :(得分:3)

您可以使用GetRange()从列表A中获取元素,然后AddRange()将元素添加到列表B(如果它们属于同一类型)。

例如:

        List<int> a = new List<int>();
        List<int> b = new List<int>();
        for (int i = 0; i < 100; i++)
        {
            b.Add(i);
        }
        List<int> sublist = a.GetRange(20, 10);
        a.AddRange(sublist);