Вставить в список VB
У меня есть мой код VB, как показано ниже -
Dim vals As New List(Of String)(7)
vals.Insert (0 , "A")
vals.Insert (1 , "B")
vals.Insert (2 , "C")
vals.Insert (5 , "E") 'Here I receive error as Index must be within the bounds of the List.
'Parameter name: index
В требовании, которое я имею, мне нужно вставить значения по определенным индексам, но это может быть случайная вставка. Я верю, что если я установлю емкость списка, я смогу вставить значения в индекс в пределах емкости.
Есть идеи, что мне не хватает?
1 ответ
Решение
(7)
в вашем конструкторе указывается "Начальная емкость" Списка, а не инициализируется 8 элементов. Смотрите MSDN для деталей
Я думаю, что ваш лучший вариант:
1 - Если размер вашего "массива" не изменится (или будет меняться не часто), используйте вместо этого массив
Dim vals As String() = New String(7) {}
'Dim vals(7) As String also works but is not best practise
vals(0) = "A"
vals(3) = "D"
'etc.
2 - Инициализировать элементы в той же строке, что и конструктор
Dim vals As New List(Of String)(Enumerable.Repeat("", 8))
vals(0) = "A"
vals(3) = "D"
'etc.
Мне кажется, что если вы хотите присваивать значения произвольным индексам, тогда использование List - плохой выбор.