首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >列表的Add和Append方法有什么区别?

列表的Add和Append方法有什么区别?
EN

Stack Overflow用户
提问于 2018-09-16 23:35:24
回答 2查看 18.8K关注 0票数 42

对于C#中的列表,.Append().Add()方法有区别吗?我试着在谷歌和网站上搜索,但令我惊讶的是,没有人问我。我问这个问题的原因是想知道这两种方法中是否有一种性能密集度较低。我一直交替使用这两个方法,我没有看到它们的功能有任何不同,因为它们都将我的对象添加到列表的末尾(当您查看方法描述时,这或多或少就是visual studio给您的描述)。

编辑:

嗯,我一开始并不认为这很重要,但我注意到我可以在ASP.NET web应用程序上使用Append,而不能在控制台应用程序上使用Append。因此,我是在一个ASP.NET网络应用程序的上下文中提问的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-16 23:43:15

C#中的List<T>只有修改实例、向列表中添加单个项的void Add(T item) method

另一方面,IEnumerable Append(this IEnumerable source, T element)是在IEnumerable<T>接口(由所有列表实现)上定义的扩展方法。它不修改原始list实例,但返回一个新的enumerable,该enumerable将在序列的末尾产生指定的元素。

它们不能互换使用,表现不同,有不同的结果和不同的副作用。因此,询问它们的相对性能没有任何意义。

代码语言:javascript
复制
var list = new List<string>();
list.Add("one");
list.Add("two");
// list contains: [ one, two ]

list.Append("three");
// list still contains: [ one, two ]
票数 61
EN

Stack Overflow用户

发布于 2018-09-16 23:43:59

Add是一个空洞。

Append返回一个IEnumerable,这样您就可以

代码语言:javascript
复制
var x = new List<int>();
x.Add(1);
x = x.Append(2).Append(3).ToList();

您可能希望查看Wikipedia:Fluent interface,了解有关链接函数如何工作的更多信息。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52355682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档