例如,我有 5 个相同类型的列表。我可以简单地做吗
List<T> newset = List1.Concat(List2).Concat(List3).Concat(List4).....
最佳答案
你可以做到这一点(尽管最后你需要 .ToList()
)。
但是,生成单个列表并使用 AddRange 添加到每个列表中会(稍微)更有效。只需使用所有列表的总大小初始化列表,然后重复调用 AddRange。
你可能想考虑做这样的事情:
public List<T> ConcatMultiple<T>(this List<T> list, params[] ICollection<T> others)
{
List<T> results = new List<T>(list.Count + others.Sum(i => i.Count));
results.AddRange(list);
foreach(var l in others)
results.AddRange(l);
return results;
}
然后通过以下方式调用:
List<MyClass> newset = List1.ConcatMultiple(List2, List3, List4);
关于c# - List<T> 连接 'X' 个列表数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357722/