0
鑑於以下vb.net類的列表中返回所有的鍵:如何某一個值,從KeyValuePair(vb.net或C#)
Friend Class PairCollection(Of TKey, TValue)
Inherits List(Of KeyValuePair(Of TKey, TValue))
Public Overloads Sub Add(ByVal key As TKey, ByVal value As TValue)
Me.Add(New KeyValuePair(Of TKey, TValue)(key, value))
End Sub
Public Function FindByValue(ByVal value As TValue) As List(Of KeyValuePair(Of TKey, TValue))
Return Me.FindAll(Function(item As KeyValuePair(Of TKey, TValue)) (item.Value.Equals(value)))
End Function
End Class
功能FindByValue返回適合的數值單KeyValuePair 。然而,這個PairCollection的實現可能有m:1的值,所以我希望返回所有具有該值的鍵(可能有多個鍵)。
問題不容易,我是vb.net中的Lambda表達式的新手,並且更熟悉C#。我可以寫一個簡單的例程來遍歷集合,但我覺得有一個通用的組合方法。
我想什麼,我試圖做的是沿着以下線的東西:
Public Function FindByValue2(ByVal value As TValue) As List(Of TKey)
Return Me.FindAll(Function(item As list(of TKey) (item.Value.Equals(value)))
End Function
相關理由的背後是什麼,我試圖爲here。
謝謝Mehrdad 100%正確。 – Topdown 2009-10-27 04:00:25