首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET List <T> Concat与AddRange

.NET List<T> 的 Concatenate 与 AddRange 方法是在 .NET 框架中实现合并列表的功能的方法。虽然它们都有相似的目的,但使用方式有所不同,下面是 Concatenate 和 AddRange 方法的比较和实现。

List<T> Concat 方法:这个方法是将两个或多个 List<T> 的片段连接成一个新的 List<T>。这个方法接收一个源 List<T> 和一个或多个目标 List<T> 作为参数,并返回一个 New List<T> 实例。

例如:

代码语言:csharp
复制
List<int> sourceList1 = new List<int> { 1, 2, 3 };
List<int> sourceList2 = new List<int> { 4, 5, 6 };
List<int> concatenatedList = sourceList1.Concat(sourceList2).ToList();

当使用 Concatenate 方法时,我们得到一个合并的新列表并返回它。而原始列表保持不变(即原始 list 不会被改变)。这个方法支持不同类型的数据,包括 ValueT、Guid、DateTime、bool 等。

List<T> AddRange 方法:这个方法是将一个可迭代对象中的元素添加到 List<T> 实例中,并返回新列表的长度。这个方法接收一个源(source)列表、一个可迭代对象(sequence)和一个可选的增量(start index)作为参数,并返回列表的长度。

例如:

代码语言:csharp
复制
List<int> sourceList = new List<int> { 1, 2, 3 };
int[] numbers = { 4, 5, 6 };
int index = 0;

sourceList.AddRange(numbers, index);

当我们使用 AddRange 方法时,直接将源 list 和可迭代对象中的数据合并,并返回列表的长度。需要注意的是该方法并不生成一个新的 List<T> 实例,而只是在源列表的基础上进行修改,源列表可能不会保留其原始内容而改变。该方法的类型是允许的,比如 bool、Guid、DateTime、int 等等。

总结:

  • Concatenate 方法主要用于合并多个 List<T> 实例,生成一个新的列表,而原有的 List<T> 列表保持不改变;
  • AddRange 方法接受一个列表、一个可迭代对象和一个可选的起始索引,将可迭代对象中的元素添加到源列表中;同时,AddRange 对象不生成一个新的列表,而是直接修改源列表。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券