Список (из строки) или массив или массив - программирование
Подтвердить что ты не робот

Список (из строки) или массив или массив

Надеюсь, простой вопрос для большинства программистов с некоторым опытом.

Что такое тип данных, который позволяет мне это делать?

Dim lstOfStrings as *IDK*

Dim String0 As String = "some value"
Dim String1 As String = "some value"
Dim String2 As String = "some value"
Dim String3 As String = "some value"
Dim String4 As String = "some value"
Dim String5 As String = "some value"


lstOfStrings.add(String0, String1, String2, String3)

Я бы получил доступ к этим типам

Dim s1 = lstOfStrings(0)
Dim s2 = lstOfStrings(1) 
Dim s3 = lstOfStrings(2) 
Dim s4 = lstOfStrings(3)

если я использую List (of String) Я могу только добавить одно к списку (одновременно), и в своей функции я хочу иметь возможность хранить несколько значений (за раз).

Решение:

Private Function Foo() As List(Of String)


    Dim temp1 As String
    Dim temp2 As String 
    Dim temp3 As String 

    Dim temp4 As String 
    Dim temp5 As String 
    Dim temp6 As String 

    Dim inputs() As String = {temp1, temp2, temp3, temp4, temp5, temp6}

    Dim lstWriteBits As List(Of String) = New List(Of String)(inputs)


    Return lstWriteBits
End Function
4b9b3361

Ответ 1

List(Of String) будет обрабатывать это, в основном - хотя вам нужно либо использовать AddRange, чтобы добавить коллекцию элементов, либо Add, чтобы добавить один за раз:

lstOfString.Add(String1)
lstOfString.Add(String2)
lstOfString.Add(String3)
lstOfString.Add(String4)

Если вы добавляете известные значения, как вы показываете, хороший вариант - использовать что-то вроде:

Dim inputs() As String = { "some value", _
                              "some value2", _
                              "some value3", _
                              "some value4" }

Dim lstOfString as List(Of String) = new List(Of String)(inputs)

' ...
Dim s3 = lstOfStrings(3)

Это позволит вам добавлять элементы позже по желанию, но также быстро получать начальные значения.


Edit:

В вашем коде вам нужно исправить объявление. Изменение:

Dim lstWriteBits() As List(Of String) 

To:

Dim lstWriteBits As List(Of String) 

В настоящее время вы объявляете объекты массива List (Of String).

Ответ 3

Посмотрите на метод List AddRange здесь

Ответ 4

Ни одна коллекция не позволит вам добавлять элементы таким образом.

Вы можете сделать расширение, чтобы сделать для examle List(Of String) метод Add, который может это сделать:

Imports System.Runtime.CompilerServices
Module StringExtensions

  <Extension()>
  Public Sub Add(ByVal list As List(Of String), ParamArray values As String())
    For Each s As String In values
      list.Add(s)
    Next
  End Sub

End Module

Теперь вы можете добавить несколько значений за один вызов:

Dim lstOfStrings as New List(Of String)
lstOfStrings.Add(String1, String2, String3, String4)

Ответ 5

Вы можете использовать IList(Of String) в функции:

Private Function getWriteBits() As IList(Of String)


Dim temp1 As String
Dim temp2 As Boolean
Dim temp3 As Boolean


'Pallet Destination Unique
Dim temp4 As Boolean
Dim temp5 As Boolean
Dim temp6 As Boolean

Dim lstWriteBits As Ilist = {temp1, temp2, temp3, temp4, temp5, temp6}

Return lstWriteBits
End Function

использование list1.AddRange(list2) добавить списки

Надеюсь, что это поможет.