J'espère une question simple à la plupart des programmeurs expérimentés.
Quel est le type de données qui me permet de faire cela?
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)
Je voudrais accéder à ceux-ci comme ça
Dim s1 = lstOfStrings(0)
Dim s2 = lstOfStrings(1)
Dim s3 = lstOfStrings(2)
Dim s4 = lstOfStrings(3)
si j'utilise List (of String) Je ne peux ajouter qu'une chose à la liste (à la fois) et dans ma fonction, je veux pouvoir stocker plusieurs valeurs (à la fois).
Solution:
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)
gérera cela, principalement - bien que vous deviez soit utiliser AddRange
pour ajouter une collection d'éléments, soit Add
pour en ajouter un à la fois:
lstOfString.Add(String1)
lstOfString.Add(String2)
lstOfString.Add(String3)
lstOfString.Add(String4)
Si vous ajoutez des valeurs connues, comme vous le montrez, une bonne option consiste à utiliser quelque chose comme:
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)
Cela vous permettra quand même d’ajouter des éléments plus tard, si vous le souhaitez, mais aussi d’obtenir rapidement vos valeurs initiales.
Modifier:
Dans votre code, vous devez corriger la déclaration. Changement:
Dim lstWriteBits() As List(Of String)
À:
Dim lstWriteBits As List(Of String)
Actuellement, vous déclarez un tableau d'objets Array of List (Of String).
Vous pouvez faire quelque chose comme ça,
Dim lstOfStrings As New List(Of String) From {"Value1", "Value2", "Value3"}
regardez la méthode List AddRange
here
Aucune collection ne vous permettra d'ajouter des éléments de cette façon.
Vous pouvez faire une extension pour faire pour examiner List(Of String)
avoir une méthode Add
qui peut le faire
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
Maintenant, vous pouvez ajouter plusieurs valeurs en un seul appel:
Dim lstOfStrings as New List(Of String)
lstOfStrings.Add(String1, String2, String3, String4)
Vous pouvez utiliser IList(Of String)
dans la fonction:
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
utiliser list1.AddRange(list2)
pour ajouter des listes
J'espère que ça aide.
Parfois, je ne veux pas ajouter d'éléments à une liste lorsque je l'instancie.
Instancier une liste vierge
Dim blankList As List(Of String) = New List(Of String)
Ajouter à la liste
blankList.Add("Dis be part of me list") 'blankList is no longer blank, but you get the drift
Parcourez la liste
For Each item in blankList
' write code here, for example:
Console.WriteLine(item)
Next