Список коротких циклов

#vb.net

#vb.net

Вопрос:

это мой новый список (строк)

     Dim NChooseKListX1, NChooseKListX2, NChooseKListX3, NChooseKListX4, NChooseKListX5, NChooseKListX6, NChooseKListX7, NChooseKListX8,
    NChooseKListX9, NChooseKListX10, NChooseKListX11 As New List(Of String)()
  

Код: Как я могу сделать NChooseKListX после X его значением (PositionalNCKX), как NChooseKListX (PositionalNCX), не записывая значение так много раз.

   If strNCKXDigit(PositionalNCKX - 1) = strNCKXDigitA(0) Then
                    NChooseKListX (the value must be changed according to PositionalNCKX) .Add(NChooseKLTxt.Lines(RWNCKlines))
                ElseIf strNCKXDigit(PositionalNCKX - 1) = strNCKXDigitA(1) Then
                    NChooseKListX (the value must be changed according to PositionalNCKX).Add(NChooseKLTxt.Lines(RWNCKlines))
     End If
  

Комментарии:

1. Это не ОДИН список, это набор списков (строк). Если вы хотите инициализировать один список с этими значениями, вот как: Dim list As New List(Of String)({"a", "b", "c"})

2. Сложно декодировать, но вы наверняка хотите создать массив списков.

Ответ №1:

Каждый раз, когда у вас есть имена переменных, которые отличаются только числом, и вы хотите каким-то образом заставить VB разрешить вам использовать какое-либо изменяющееся число для доступа к именам переменных differnet, у вас есть .. массив!

Или коллекция, но давайте сделаем это с массивом:

    Dim NChooseKListX(10) As List(Of String)

   
   'see how now we access them by index integer. 
   'This loop initializes the array slots so they are all new lists
   'It is necessary otherwise NChooseKListX(...) will be Nothing,
   'so don't throw this loop away thinking it's just a demo; you need it
   For i = 0 to 10 
 
     NChooseKListX(i) = New List(Of String)

   Next i
  

Помните, что массивы в .net основаны на нуле, поэтому первым, который вы назвали NChooseKListX1, является NChooseKListX(0) , вплоть до NChooseKListX(10) (ваш NChooseKListX11)

Теперь вы можете обращаться к этим спискам с помощью некоторой целочисленной переменной, например PositionalNCKX , но помните, что она должна находиться в диапазоне от 0 до 10, поэтому вам может потребоваться вычеркнуть из нее некоторое число