我目前正在开发一个C#项目,我有一个用类对象初始化的列表,即List<MyClass> myList = new List<MyClass>();
我已经在这个列表中添加了一些数据,但是我需要向它添加更多数据,但是,它需要到数组的开头,而不是最后,有没有办法可以做到这一点。 / p>
感谢您提供的任何帮助。
答案 0 :(得分:4)
取决于您的“MyList”的类型!如果它是一个简单的列表,那么
myList.Insert(0, new MyClass());
将解决您的问题!
答案 1 :(得分:3)
我假设你正在使用List,为此你可以使用
List<string> mylist = new List<string>();
string[] input = { "fist", "second" }
mylist.InsertRange(0, input);
答案 2 :(得分:1)
首先,您所描述的不是数组而是List。 数组将是:
var myArray = new MyClass[]{new MyClass("foo"), new MyClass("Bar"};
其次,数组实现了T的IList和T的ICollection,但是这些方法是显式实现的(你必须强制转换)并且Add / Insert / Remove throw没有实现Exception。这意味着System.Array类是不可变的。
最后,正如其他人在此处提到的,如果您使用的是List,则可以调用Insert。其中有两个参数,第一个是要插入项目的索引,第二个是要插入的元素:
myList.Insert(0, new MyClass("aaa"))
答案 3 :(得分:0)
编辑:问题已更改,以澄清正在使用List<T>
您可以使用Insert()在特定索引处添加(使用0作为开头)。以下是List<T>.Insert()
答案 4 :(得分:0)
如果您只是添加到列表的前面,那么可能值得包装一个标准列表,以便在内部将它们添加到结尾,但是当您迭代它时它会反向运行。
这是因为Insert是O(n)而Add是O(1),前提是列表不必在内部调整大小。