.NET List<T> Concat 与 AddRange
-
01-07-2019 - |
解决方案
它们具有完全不同的语义。
AddRange 通过添加其他项目来修改列表。
Concat 返回包含列表和其他项目的新序列,而不修改列表。
选择具有您想要的语义的任何一个。
其他提示
最大的区别在于 AddRange 会改变调用它的列表,而 Concat 创建一个新列表。因此它们有不同的用途。
Concat 也是一种扩展方法,适用于任何 IEnumerable 并返回 IEnumerable,您需要 .ToList() 才能生成新列表。
如果您想扩展现有列表的内容,请使用 AddRange。
如果要从两个 IEnumerable 源创建新列表,请使用 Concat 和 .ToList。它具有不会改变任何来源的特性。
如果您只需要枚举两个列表(或任何其他 IEnumerable)的内容,那么每次只需使用 Concat,这样做的优点是不需要实际分配新内存来保存统一列表。
不隶属于 StackOverflow