首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >List(of String)、Array或ArrayList

List(of String)、Array或ArrayList
EN

Stack Overflow用户
提问于 2012-11-08 00:30:40
回答 7查看 213.7K关注 0票数 29

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

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

代码语言:javascript
复制
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)

我会像这样访问这些

代码语言:javascript
复制
Dim s1 = lstOfStrings(0)
Dim s2 = lstOfStrings(1) 
Dim s3 = lstOfStrings(2) 
Dim s4 = lstOfStrings(3)

如果我使用List(of String),我只能(一次)将一个东西.add到list中,并且在我的函数中,我希望能够(一次)存储多个值。

解决方案:

代码语言:javascript
复制
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
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-11-08 00:34:31

大部分情况下,List(Of String)都会处理这个问题--尽管你需要使用AddRange来添加一个项目集合,或者使用Add来一次添加一个项目:

代码语言:javascript
复制
lstOfString.Add(String1)
lstOfString.Add(String2)
lstOfString.Add(String3)
lstOfString.Add(String4)

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

代码语言:javascript
复制
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)

这仍然允许您稍后根据需要添加项目,而且还可以快速获取初始值。

编辑:

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

代码语言:javascript
复制
Dim lstWriteBits() As List(Of String) 

至:

代码语言:javascript
复制
Dim lstWriteBits As List(Of String) 

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

票数 42
EN

Stack Overflow用户

发布于 2015-01-27 21:25:23

你可以这样做,

代码语言:javascript
复制
  Dim lstOfStrings As New List(Of String) From {"Value1", "Value2", "Value3"}

Collection Initializers

票数 33
EN

Stack Overflow用户

发布于 2012-11-08 00:48:06

这两个集合都不允许您以这种方式添加项。

您可以做一个扩展,使examle List(Of String)有一个可以做到这一点的Add方法:

代码语言:javascript
复制
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

现在您可以在一个调用中添加多个值:

代码语言:javascript
复制
Dim lstOfStrings as New List(Of String)
lstOfStrings.Add(String1, String2, String3, String4)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13273997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档