簡體   English   中英

從集合中獲取數據

[英]Get data from a collection

我想進行收集以使數據可用示例:

    Dim b As New Collection
    colb = New Collection

    b.Add("system", "1001", "SYSTEM")
    b.Add("network", "1002", "NETWORKA")
    b.Add("networksecond", "1010", "NETWORKB")
    colb.Add(b, "list")

我正在尋找一個從該集合中獲取數據的函數:我想基於ID(第二個數字)獲得第一個和第三個值,因此,如果我搜索1010,則需要具有值Network和NETWORKA

VB6打電話了,他們要他們的收藏回來。

不,認真的說,請考慮使用Dictionary而不是舊的Collection類。 看一下泛型和強大的打字的美麗:

Dim dic As New Dictionary(Of Integer, Tuple(Of String, String))

dic.Add(1001, Tuple.Create("system", "SYSTEM"))
dic.Add(1002, Tuple.Create("network", "NETWORKA"))
dic.Add(1010, Tuple.Create("networksecond", "NETWORKB"))

' Search
Dim t As Tuple(Of String, String) = Nothing
If dic.TryGetValue(1002, t) Then
    Console.WriteLine(t.Item1)  ' prints "network"
    Console.WriteLine(t.Item2)  ' prints "NETWORKA"
End If

一旦有兩個以上的值,建議您使用專門的類代替Tuple,以提高可讀性。

同樣,您可以簡單地使用List(Of T) 在大多數情況下,這就足夠了。 字典非常適​​合通過單個鍵快速搜索長列表。

'declare model
Public Class NetworkModel
    Public Property Id As Integer
    Public Property Name1 As String
    Public Property Name2 As String
End Class

' load list of models
Private _modelList As New List(Of NetworkModel)()
.......

' search using LINQ
Dim model As NetworkModel = _modelList.FirstOrDefault(Function(m) m.Id = 1001) 

If model IsNot Nothing Then . . . . .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM