С# способ добавить значение в список <T> по индексу
Можно ли добавить значение по определенному индексу? Я пытаюсь сделать индексатор, и у меня есть списки. Есть ли какой-либо трюк, чтобы сделать это в этом контексте: D
public class Multime<T>
{
private List<Multime<T>> multiSets;
private List<T> multimea;
***public Multime<T> this[int index]
{
get { return this.Multisets.ElementAt(index); }
set { this.Multisets.CopyTo(value,index); }
}***
public List<Multime<T>> Multisets
{
get { return this.multiSets; }
set { this.multiSets = value; }
}//accesori Multimea de multimi
public List<T> Multimea
{
get { return this.multimea; }
set { this.multimea = value; }
}//Accesori Multime
Ответы
Ответ 1
List<T>.Insert
, возможно?
Но я бы предположил, что вы, вероятно, просто хотите получить/написать - не вставлять:
public Multime<T> this[int index]
{
get { return Multisets[index]; }
set { Multisets[index] = value; }
}
Обратите внимание, что с С# 3 существуют более простые способы записи этих свойств: btw:
public List<T> Multimea { get; set; }
public List<Multime<T>> Multisets { get; set; }
Кроме того, не всегда хорошая идея фактически публиковать написанные коллекции напрямую - это означает, что вы не можете контролировать, что происходит в этих коллекциях.
Ответ 2
Метод .Insert()
на List<T>
предназначен именно для этой цели:
someList.Insert(2, someValue);
Это изменит коллекцию someList
, чтобы вставить someValue
в индекс 2
, нажав другие значения на один индекс.
Подробнее здесь.
Ответ 3
Можете ли вы использовать List.Insert?
Ответ 4
Попробуйте использовать List.Insert
Это должно решить проблему, с которой вы сталкиваетесь.
Ответ 5
Возможно, вы ищете что-то более похожее на словарь или карту. Это типы коллекций, которые позволяют назначать объект, используя пары ключ-значение, поэтому вы всегда можете назначить объект в определенной позиции и извлечь его из той же позиции. Вы можете подумать, что вам нужен список, потому что вы не знаете, сколько записей вы будете хранить, но если у вас есть представление о максимальном количестве записей, это поможет вам решить, можете ли вы использовать что-то вроде словаря. Я думаю, что предел довольно высокий, но вы можете посмотреть на класс Dictionary, чтобы увидеть ограничения.