对于C#中的列表,.Append()
和.Add()
方法有区别吗?我试着在谷歌和网站上搜索,但令我惊讶的是,没有人问我。我问这个问题的原因是想知道这两种方法中是否有一种性能密集度较低。我一直交替使用这两个方法,我没有看到它们的功能有任何不同,因为它们都将我的对象添加到列表的末尾(当您查看方法描述时,这或多或少就是visual studio给您的描述)。
编辑:
嗯,我一开始并不认为这很重要,但我注意到我可以在ASP.NET web应用程序上使用Append,而不能在控制台应用程序上使用Append。因此,我是在一个ASP.NET网络应用程序的上下文中提问的。
发布于 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将在序列的末尾产生指定的元素。
它们不能互换使用,表现不同,有不同的结果和不同的副作用。因此,询问它们的相对性能没有任何意义。
var list = new List<string>();
list.Add("one");
list.Add("two");
// list contains: [ one, two ]
list.Append("three");
// list still contains: [ one, two ]
发布于 2018-09-16 23:43:59
Add
是一个空洞。
Append
返回一个IEnumerable,这样您就可以
var x = new List<int>();
x.Add(1);
x = x.Append(2).Append(3).ToList();
您可能希望查看Wikipedia:Fluent interface,了解有关链接函数如何工作的更多信息。
https://stackoverflow.com/questions/52355682
复制相似问题