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