首页
学习
活动
专区
工具
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 对象不生成一个新的列表,而是直接修改源列表。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在VB.netList(of string())Arr(,)有什么区别

    在VB.netList(of string())Arr(,)有什么区别 (1)List(of string())Arr(,)有什么区别 在VB.NET中,List(Of String()...1.数据类型:a.List(Of String()): 这是一个List集合,其元素是String数组。你可以认为它是一个动态数组列表,能够自动调整大小。...在VB.NET中,这两种数据结构都是非常有用的工具,但它们的使用场景和特性是不同的。...(2)VSTO外接Excel中List(of string())如何输出到Excel工作表 在VB.net中,要将List(Of String())快速输出到Excel工作表中,您可以使用Microsoft...(3)VSTO外接Excel中arr(,)如何输出到Excel工作表 在VB.net中,二维数组arr(,)可以批量输出到Excel工作表中,但您需要使用适当的库来操作Excel。

    28910

    一步一步创建ASP.NET MVC5程序(十一)

    >泛型实体 [Serializable] public class PagedList : List, IPagedList {...(page, pageIndex, pageSize, totalCount); return list; } } 类似地操作,打开项目 TsBlog.Services,并打开文件...安装的方式为:nuget,所以以前几期的nuget包安装类似,打开nuget包管理工具,搜索关键词PagedList,在查询出来的包中,选择PagedList.Mvc和PagedList两个分页组件包并安装...”的,欢迎加入图享网官方QQ群:483350228,如果你按照教程还原出来的程序运行有问题,请参照本期源码对应调整修改遇到问题的,也欢迎加入QQ群。...[https://2sharings.com] 一个.NET编程爱好者社区,专注.NET/C#开发,帮助你找到疑难问题的更优美、更高级的解决方案

    1.5K60

    原 (手工)base64加密解密

    sourceStr);               int count = sourceByte.Length;                                           List...{                 by.AddRange(toBit(sourceByte[current]));             }             byte[] bit8 = new...                if (i == 23)                 {                     bit24[i] = b;                     targetByte.AddRange...            for (int m = 0; m < temp.Length; m++)             {                 sourceByte = sourceByte.Concat...                if (i == 7)                 {                     bit8[i] = b;                     targetByte.AddRange

    96760
    领券