.NET List<T> 的 Concatenate 与 AddRange 方法是在 .NET 框架中实现合并列表的功能的方法。虽然它们都有相似的目的,但使用方式有所不同,下面是 Concatenate 和 AddRange 方法的比较和实现。
List<T> Concat 方法:这个方法是将两个或多个 List<T> 的片段连接成一个新的 List<T>。这个方法接收一个源 List<T> 和一个或多个目标 List<T> 作为参数,并返回一个 New List<T> 实例。
例如:
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)作为参数,并返回列表的长度。
例如:
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 等等。
总结:
领取专属 10元无门槛券
手把手带您无忧上云