2017-05-27 7 views
0
Public ets As New Dictionary(Of String, info) 

Public Class info 

    Public Property index As Integer 

    Public Property imglst_index As Integer 

End Class 

linqクエリを使用している辞書では、index = "x"でimglst_indexとkey = "y"を取得したいと考えています。キーとlinqで別の値で値を取得するには? vbnet

 For Each subKey As String In subKeys 

      Dim result = exts.FirstOrDefault(Function(x) x.Key = subkey AndAlso x.Value.ext_icon_index = subkey.DefaultIcon.Index).Value.ext_imglst_index 

        if result>0 then item2.imageindex=result 

        Dim item As New ListViewItem(subKey) 
        item.ImageIndex = ImageList.Images.Count - 1 
        item.Tag = subKey 
        Items.Add(item) 
        exts.Add(subkey, New ext_info With {.ext_icon_index = subkey.DefaultIcon.Index, .ext_imglst_index = item.ImageIndex}) 


    Next subKey 

ここに私のコード。

答えて

0

これは

Dim result = ets.First(Function(x) x.Key = "y" AndAlso x.Value.index="x") _ 
       .Value _ 
       .imglst_index 
+1

THXは、問題を発見してみ..あなたがそれを行う方法です。 – ErolCimen

+0

例外: "オブジェクト参照がオブジェクトのインスタンスに設定されていません。" (System.NullReferenceException)このエラーを取得します。 2つの結果を返した後 – ErolCimen

+0

@ErolCimen:サンプルデータを表示してください。 – DarkKnight

0

この

Module Module1 

    Sub Main() 
     Dim infos As New List(Of info) 
     ets = infos.GroupBy(Function(x) x.index).ToDictionary(Function(x) x.Key, Function(y) y.FirstOrDefault()) 
    End Sub 
    Public ets As New Dictionary(Of Integer, info) 

    Public Class info 

     Public Property index As Integer 

     Public Property imglst_index As Integer 

    End Class 

End Module