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

本文关键字:列表 添加 另一个 一个 | 更新日期: 2023-09-27 18:10:39

我有两个列表,a &B. B包含100个元素。我如何将列表A中的第20 - 30个元素从B中添加到列表A中?我知道有AddRange,但对我来说,它看起来像是将列表B中的所有元素添加到列表A中。有没有一种方法可以在不使用循环的情况下做到这一点?

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

假设两个列表具有相同的底层类型,您可以使用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

您可以使用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);