List(of String)或Array或ArrayList

Bra*_*don 23 vb.net collections list

希望对大多数具有一定经验的程序员来说是个简单的问题.

什么是允许我这样做的数据类型?

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)
Run Code Online (Sandbox Code Playgroud)

我会像这样访问这些

Dim s1 = lstOfStrings(0)
Dim s2 = lstOfStrings(1) 
Dim s3 = lstOfStrings(2) 
Dim s4 = lstOfStrings(3)
Run Code Online (Sandbox Code Playgroud)

如果我使用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
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 33

List(Of String)会处理这个问题,主要是 - 虽然您需要使用AddRange添加项目集合,或者Add一次添加一个项目:

lstOfString.Add(String1)
lstOfString.Add(String2)
lstOfString.Add(String3)
lstOfString.Add(String4)
Run Code Online (Sandbox Code Playgroud)

如果您要添加已知值,正如您所示,一个好的选择是使用如下内容:

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)
Run Code Online (Sandbox Code Playgroud)

这仍然允许您根据需要稍后添加项目,但也可以快速获取初始值.


编辑:

在您的代码中,您需要修复声明.更改:

Dim lstWriteBits() As List(Of String) 
Run Code Online (Sandbox Code Playgroud)

至:

Dim lstWriteBits As List(Of String) 
Run Code Online (Sandbox Code Playgroud)

目前,您正在声明一个List(Of String)对象数组.

  • @BrandonJ看起来你的声明是错的 - 你可能有一个额外的`()`.请参阅我上面关于Dim线的声明...... (3认同)

小智 24

你可以这样做,

  Dim lstOfStrings As New List(Of String) From {"Value1", "Value2", "Value3"}
Run Code Online (Sandbox Code Playgroud)

集合初始化器

  • "这是你正在寻找的单线......" (3认同)