Понимание списков добавления / удаления значения

Я изучаю списки и добавляю / удаляю. В приведенном ниже коде я создаю список, генерирую случайное число, а затем хочу навсегда удалить номер из списка:

cardsLST.AddAll(Array As Int(1,2,3,4,5))  'create the list
s = Rnd(1,6)  'generate a random number 1-5
Msgbox(s,"")  'display the randomly generated number
Msgbox(cardsLST,"")   'display the current list members
cardsLST.RemoveAt(s)   'remove the generated value from the list
Msgbox(strtCardsLST,"")   'display the updated list members

Я не могу понять числа... например... Если я сгенерирую 1, 2 удаляется из списка. Если я генерирую 5, я получаю исключение вне границ

2 ответа

Решение

Индексы списков и массивов начинаются с нуля, поэтому ваш список проиндексирован от 0 до 4.

cardsLST.AddAll(Array As Int(1,2,3,4,5)) эквивалентно следующему:

cardsLST.insertAT(0,"1")   'cardsLST.isert(Index as int, Value as object)
cardsLST.insertAT(1,"2")
cardsLST.insertAT(2,"3")
cardsLST.insertAT(3,"4")
cardsLST.insertAT(4,"5")

Вы можете использовать свой генератор случайных чисел для генерации значения индекса карты с s = Rnd(0,5) генерировать случайное число 0-4 так

cardsLST.RemoveAt(3)

удалил бы карту "4"

Другие вопросы по тегам