#c# #list
#c# #Список
Вопрос:
В настоящее время я работаю над проектом C #, где у меня есть список, инициализированный объектом класса, т.Е. List<MyClass> myList = new List<MyClass>();
Я добавил некоторые данные в этот список, но мне нужно добавить в него больше данных, однако это должно быть в начале массива, а не в конце, есть ли способ, которым я могу это сделать.
Спасибо за любую помощь, которую вы можете предоставить.
Комментарии:
1. Что именно
MyList
?2. если это arraylist, используйте
insert(idx, object)
3. В стандартных реализациях
IList
должен бытьInsert()
метод, просто используйте его.4. Например,
MyList
реализованныйIList
.Insert()
метод имеет перегрузку, которая принимает индекс:myList.Insert(0, moreData);
Если вашMyList
класс имеет собственную реализацию, вам придется написать этот метод самостоятельно. Какова базовая структура данных вашегоMyList
класса?5. Извините, это должен был быть List<MyClass>. Теперь я обновил вопрос
Ответ №1:
Зависит от типа вашего «myList»! Если это простой список, то
myList.Insert(0, new MyClass());
решит вашу проблему!
Ответ №2:
Я предполагаю, что вы используете List и для этого вы можете использовать
List<string> mylist = new List<string>();
string[] input = { "fist", "second" }
mylist.InsertRange(0, input);
подробнее : Список.Метод InsertRange
Ответ №3:
Прежде всего, то, что вы описываете, — это не массив, а список. Массив будет:
var myArray = new MyClass[]{new MyClass("foo"), new MyClass("Bar"};
Во-вторых, массивы реализуют IList из T и ICollection из T, но методы реализованы явно (вы должны выполнить приведение), а исключение Add / Insert /Remove throw не реализовано. Это означает, что система.Класс массива является своего рода неизменяемым.
Наконец, как упоминалось здесь, если вы используете список, вы можете вызвать Insert. Который имеет два параметра: первый — это индекс, в который вы хотите вставить элемент, а второй — элемент для вставки:
myList.Insert(0, new MyClass("aaa"))
Ответ №4:
РЕДАКТИРОВАТЬ: Вопрос изменен, чтобы уточнить, что List<T>
используется
Вы можете использовать Insert() для добавления по определенному индексу (используйте 0 для начала). Вот документация для List<T>.Insert()
Ответ №5:
Если вы добавляете только в начало списка, возможно, стоит обернуть стандартный список так, чтобы внутренне он добавлял их в конец, но когда вы повторяете его, он выполняется в обратном порядке.
Это потому, что Insert — это O (n), а Add — это O (1) при условии, что список не должен изменять размер внутри.