Понимание списков добавления / удаления значения
Я изучаю списки и добавляю / удаляю. В приведенном ниже коде я создаю список, генерирую случайное число, а затем хочу навсегда удалить номер из списка:
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"