Как бы вы получили доступ к определенному индексу в массиве My.Settings, используя формат строки

У меня есть ArrayList, сохраненный в My.Settings. Я пытаюсь получить к нему доступ, используя некоторую строку. Вот код, чтобы вы получили то, что я пытаюсь сделать.

If listBoxEdit1.SelectedIndex > -1 Then
        My.Settings("Sup" & listBoxEdit1.SelectedIndex + 1 & "(1)") = Convert.ToDouble(Margin2TextBox.Text)
    End If

мне нужно указать значение для My.Settings.Sup1(1)

Как бы вы это сделали?

У меня есть несколько ArrayLists, который идет от My.Settings.Sup1 до My.Settings.Sup20, так что listBoxEdit1.SelectedIndex+1 указывает номер ArrayList, но я не могу понять, как получить индекс

также пытался

My.Settings("Sup" & listBoxEdit1.SelectedIndex + 1 &"("& 1 & ")")

также

My.Settings("Sup" & listBoxEdit1.SelectedIndex + 1).Item(1)

1 ответ

Решение

Выбрать StringCollection как тип вашей настройки.

Тогда вы можете легко получить доступ к определенному элементу с индексом.

Dim setting As StringCollection = My.Settings.MySetting
Dim value1 = My.Settings.MySetting(1)
Dim value2 = My.Settings.MySetting(2)
Dim valueX = My.Settings.MySetting.Item(X)

редактировать

Если ваша настройка называется Sup1Вы можете получить к нему доступ через My.Settings("Sup1") или My.Settings("Sup" и т. д.). Тогда у вас есть свой ArrayList или же StringCollection и может получить доступ к его элементам, как и любой другой ArrayList или же StringCollection,

Так что ваш код, вероятно, должен читать:

 My.Settings("Sup" & listBoxEdit1.SelectedIndex + 1)(1) = Convert.ToDouble(Margin2TextBox.Text)

Вот еще один пример:

My.Settings.MySetting1 = New StringCollection()

My.Settings("MySetting" & 1).Add("FooBar")
My.Settings("MySetting" & 1).Add("123456")

My.Settings("MySetting" & 1)(0) = "Hey, what's up?"

MsgBox(My.Settings("MySetting" & 1)(1))
Другие вопросы по тегам