web-dev-qa-db-ja.com

vb.netの辞書でどのように反復できますか?

辞書を作成します

    Dim ImageCollection As New Dictionary(Of ConvensionImages, Integer)

そして私はそれを埋めます

 For Each dr As DataRow In dt.Rows
            Dim obj As New ConvensionImages
            obj.ImageID = dr("ID")
            obj.Name = dr("Name")
            obj.Description = dr("Description")
            obj.CategoryID = dr("CategoryID")
            obj.CategoryName = dr("CategoryName")
            obj.CategoryDescription = dr("CatDescription")
            obj.EventID = dr("EventID")
            obj.Image = dr("img")
            obj.DownloadImage = dr("DownLoadImg")
            ImageCollection.Add(obj, key)
            key = key + 1

今、私はImageIDを検索し、どうすればこれを行うことができますか

26
Andy

Integerを辞書のキーとして作成します。

_Dim ImageCollection As New Dictionary(Of Integer, ConvensionImages)
_

ImageCollection.Add(obj, key)ImageCollection.Add(key, obj)に変更します

そして、このループを使用します。

_For Each kvp As KeyValuePair(Of Integer, ConvensionImages) In ImageCollection
     Dim v1 As Integer = kvp.Key  
     Dim v2 As ConvensionImages = kvp.Value  
     'Do whatever you want with v2:
     'If v2.ImageID = .... Then
Next  
_
54
Andrey Gordeev

この方法でもループできます。

For Each iKey As Integer In ImageCollection.Keys
    Dim value As ConvensionImages = ImageCollection(iKey)
    '...
Next

それは非常に高速で簡単な方法です。

15
SysDragon