C# 如何将项目插入列表<;T>;而不把索引中的项目撞到后面?

C# 如何将项目插入列表<;T>;而不把索引中的项目撞到后面?,c#,.net,linq,list,insert,C#,.net,Linq,List,Insert,我试图使用foo.Insert(0,bar)在列表的开头插入一个项目但之前在索引0处的项似乎被碰撞到列表的后面,而不是移动到索引1。我试着创建一个新列表并按顺序添加值,但它看起来很混乱 有什么干净的方法可以做到这一点吗?如果是,怎么做 谢谢。如评论中所述,插入列表保留顺序,因此不应发生所述行为 简单的例子: var lst = new List<int> {1,2,3,4}; lst.Insert(0,0); lst.Dump(); var lst=新列表{1,2,3,4}; 第一

我试图使用
foo.Insert(0,bar)在列表的开头插入一个项目
但之前在索引0处的项似乎被碰撞到列表的后面,而不是移动到索引1。我试着创建一个新列表并按顺序添加值,但它看起来很混乱

有什么干净的方法可以做到这一点吗?如果是,怎么做


谢谢。

如评论中所述,插入
列表
保留顺序,因此不应发生所述行为

简单的例子:

var lst = new List<int> {1,2,3,4};
lst.Insert(0,0);
lst.Dump();
var lst=新列表{1,2,3,4};
第一次插入(0,0);
lst.Dump();

您做错了,insert只是将插入位置后面的所有项目移动,这样previuos 0项目应该得到索引1如果您关心顺序,也许您应该改为使用。您能提供一个索引吗?我无法复制。如果我在索引0处插入,所有其他元素都会简单地上移。不会将任何内容移到列表的末尾。是的,请使用其他类型的集合。例如,stackList确实保留了顺序,所以不确定这里发生了什么,也许会有帮助?源代码保证:第677行