C# 列表之间的差异';s添加和附加方法?

C# 列表之间的差异';s添加和附加方法?,c#,C#,C#中列表的.Append()方法和.Add()方法之间有区别吗?我试着在谷歌和网站上搜索,但没人问我。我问这个问题的原因是想知道这两种方法中是否有一种性能要求较低。我一直在交替使用这两个方法,在它们都将我的对象添加到列表末尾时,我没有看到它们的功能有任何区别(这或多或少是VisualStudio在查看方法描述时给出的描述) 编辑: 嗯,一开始我并不认为这有什么关系,但我注意到我可以在ASP.NET web应用程序上使用Append,而在控制台应用程序上则无法使用Append。因此,我是在ASP

C#中列表的
.Append()
方法和
.Add()
方法之间有区别吗?我试着在谷歌和网站上搜索,但没人问我。我问这个问题的原因是想知道这两种方法中是否有一种性能要求较低。我一直在交替使用这两个方法,在它们都将我的对象添加到列表末尾时,我没有看到它们的功能有任何区别(这或多或少是VisualStudio在查看方法描述时给出的描述)

编辑:

嗯,一开始我并不认为这有什么关系,但我注意到我可以在ASP.NET web应用程序上使用Append,而在控制台应用程序上则无法使用Append。因此,我是在ASP.NET Web应用程序的上下文中询问的。

列表
在C#中,只有修改实例才能将单个项目添加到列表中

另一方面,是在
IEnumerable
接口上定义的扩展方法(由所有列表实现)。它不修改原始列表实例,但返回一个新的可枚举项,该可枚举项将在序列末尾生成指定的元素

它们不能互换使用,表现不同,结果不同,副作用也不同。询问他们的相对表现本身没有意义

var list = new List<string>();
list.Add("one");
list.Add("two");
// list contains: [ one, two ]

list.Append("three");
// list still contains: [ one, two ]
var list=newlist();
列表。添加(“一”);
列表。添加(“两个”);
//清单包括:[一,二]
列表。附加(“三”);
//清单仍然包含:[一,二]

添加
是一个空白

Append
返回IEnumerable,以便

var x = new List<int>();
x.Add(1);
x = x.Append(2).Append(3).ToList();
var x=新列表();
x、 增加(1);
x=x.Append(2).Append(3).ToList();

您可能希望了解链接函数如何工作的更多信息。

主要区别在于列表没有
Append
方法AFAIK。你能举例说明你的代码吗?@JLRishe我没想到。谢谢我没有想到像奈特尔所指出的那样,在列表和可数之间有一种继承关系……奇怪。。好的,所以我问这个问题的原因是在ASP.NET的上下文中。idk如果我是否应该提到这一部分,但在那里创建一个列表允许我附加到一个空列表中,而这个空列表显然在C#中的控制台应用程序上,不允许我使用相同的方法(
append
)。@kobowo为了使用Linq扩展(例如
append
),您通常需要使用System.Linq拥有一个
在您打算使用它们的文件中。我怀疑这就是为什么您会在
Append
s的可用性中看到假定的不一致。您应该可以在控制台应用程序和ASP.NET中都使用它。@JLRishe我尝试添加行,但它不允许我在控制台应用程序中使用
Append
。。我养成了一个习惯,总是使用vs中的
ctrl+。
功能来检查我是否缺少using语句,所以是的…@kobowo看起来只在较新版本的.NET中可用。您的控制台应用程序使用的是.NET的哪个版本?@kobowo
。Append
包含在.NET Framework 4.7.1以后的版本中。非常清晰易懂
Add
修改原始数据,而Append在不修改原始数据的情况下返回新数组