30

うまくいけば、ある程度の経験を持つほとんどのプログラマーにとって簡単な質問です。

これを可能にするデータ型は何ですか?

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) を使用すると、(一度に) リストに .add できるのは 1 つだけで、関数では複数の値を (一度に) 格納できるようにしたいと考えています。

解決:

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
4

7 に答える 7

42

List(Of String)ほとんどの場合、それを処理します-AddRangeアイテムのコレクションを追加するために使用するかAdd、一度に1つずつ追加する必要があります:

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)

これにより、必要に応じて後で項目を追加できますが、初期値もすばやく取得できます。


編集:

コードでは、宣言を修正する必要があります。変化する:

Dim lstWriteBits() As List(Of String) 

に:

Dim lstWriteBits As List(Of String) 

現在、List(Of String) オブジェクトの配列を宣言しています。

于 2012-11-07T16:34:31.330 に答える
34

あなたはこのようなことをすることができます、

  Dim lstOfStrings As New List(Of String) From {"Value1", "Value2", "Value3"}

コレクション初期化子

于 2015-01-27T13:25:23.357 に答える
4

どちらのコレクションでも、そのようにアイテムを追加することはできません。

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

これで、1回の呼び出しで複数の値を追加できます。

Dim lstOfStrings as New List(Of String)
lstOfStrings.Add(String1, String2, String3, String4)
于 2012-11-07T16:48:05.850 に答える
3

ここでListAddRangeメソッドを見てください

于 2012-11-07T16:32:44.527 に答える
0

関数で使用できます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)リストの追加に使用

それが役に立てば幸い。

于 2015-09-08T13:23:01.507 に答える