列表的添加和追加方法之间的区别?

问题描述 投票:11回答:2

C#中列表的.Append().Add()方法之间是否有区别?我曾尝试在Google和网站中进行搜索,但令我惊讶的是没有人问过。我问的原因是要知道这两种方法之一是否需要较少的性能。我一直在交替使用这两种方法,但在它们的功能上没有发现任何差异,因为它们都将我的对象添加到了列表的末尾(这或多或少是Visual Studio在查看功能时给您的描述方法说明)。

编辑:

嗯,起初我并不认为这很重要,但是当我不能在控制台应用程序上使用Append时,我注意到可以在ASP.NET Web应用程序上使用Append。所以我在一个ASP.NET Web应用程序的上下文中问。

c#
2个回答
24
投票

C#中的[List<T>仅具有void Add(T item) method来修改实例,将单个项目添加到列表中。

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

它们不能互换使用,并且具有不同的结果和不同的副作用。这样询问他们的相对表现是没有道理的。

IEnumerable<T> Append(this IEnumerable<T> source, T element)

5
投票

[IEnumerable<T>是空的。

var list = new List<string>(); list.Add("one"); list.Add("two"); // list contains: [ one, two ] list.Append("three"); // list still contains: [ one, two ] 返回 IEnumerable,因此您可以

Add
© www.soinside.com 2019 - 2024. All rights reserved.