Подтвердить что ты не робот

Как можно итерации в словаре в 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

теперь я хочу искать идентификатор изображения и ключ, как я могу это сделать

4b9b3361

Ответ 1

Сделайте 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  

Ответ 2

Вы также можете запрограммировать этот путь:

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

Это очень быстрый и простой способ.