web-dev-qa-db-fra.com

Comment itérer dans le dictionnaire de vb.net?

Je crée un dictionnaire

    Dim ImageCollection As New Dictionary(Of ConvensionImages, Integer)

et je remplis ça

 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

maintenant, je veux rechercher ImageID et la clé comment puis-je faire

26
Andy

Définissez Integer comme clé pour votre dictionnaire:

Dim ImageCollection As New Dictionary(Of Integer, ConvensionImages)

Remplacez ImageCollection.Add(obj, key) par ImageCollection.Add(key, obj)

Et utilisez cette boucle:

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

Vous pouvez également boucler de cette façon:

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

C'est un moyen très rapide et simple.

15
SysDragon