问题在于我尝试在列表的开头添加一个对象,但结果发现这个对象根本没有被添加到列表中。我的代码如下:
有趣的是,当我调试代码时,Prepend()指令已经执行了,但是没有任何反应。因此,我不得不使用List.Insert()来完成任务,但我不明白这里发生了什么?
我的名字列表只是一个包含4个名称的简单列表,没有什么特别的,我正在使用Visual Studio 2017和.NET Framework 4.7,如果有帮助的话。
List<string> names = GetNames();
string defaultName = "default";
if (!names.Contains(defaultName))
names.Prepend(defaultName);
有趣的是,当我调试代码时,Prepend()指令已经执行了,但是没有任何反应。因此,我不得不使用List.Insert()来完成任务,但我不明白这里发生了什么?
我的名字列表只是一个包含4个名称的简单列表,没有什么特别的,我正在使用Visual Studio 2017和.NET Framework 4.7,如果有帮助的话。
names = names.Prepend(defaultName);
- John WuList
不会被改变。它返回一个以请求的元素开头的IEnumerable
。在文档中写得非常清楚 https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.prepend?view=netframework-4.7.2#remarks - Ofir Winegarten