うまくいけば、ある程度の経験があるほとんどのプログラマーに簡単な質問を送ってください。
これを可能にするデータ型は何ですか?
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)を使用する場合、リストに追加できるのは(一度に)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
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)オブジェクトの配列を宣言しています。
どちらのコレクションでもアイテムをそのように追加することはできません。
例えば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)
リストAddRange
メソッドを見る here
リストをインスタンス化するときに、リストに項目を追加したくない場合があります。
空白のリストをインスタンス化する
Dim blankList As List(Of String) = New List(Of String)
リストに追加する
blankList.Add("Dis be part of me list") 'blankList is no longer blank, but you get the drift
リストをループする
For Each item in blankList
' write code here, for example:
Console.WriteLine(item)
Next
関数で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)
を使用してリストを追加します
それが役に立てば幸い。