是否可以使用自定義結構來代替KeyValuePair?如何使用自定義結構代替KeyValuePair?
而不是
For Each kvp As KeyValuePair(Of class1,class2) In myDict
Dim c1 As kvp.Key
Dim c2 As kvp.Value
Next
我想使用
For Each kvp As myKvp In myDict
Dim c1 As kvp.P1
Dim c2 As kvp.P2
Next
我想用myKvp到位KeyValuePair(Class 1的,等級2)只(不用於其他類型)。
我試圖創建myKvp作爲
Public Structure myKvp
Public P1 As class1
Public P2 As class2
Public Sub New(_p1 As class1,_p2 As class2)
P1 = _p1
P2 = _p2
End Sub
End Structure
,但我得到
System.Collections.Generic.KeyValuePair(Of ASP...class1, ASP...class2)
類型的值不能轉換爲 'ASP ... myKvp' 的消息。
很高興知道這可以實現,但這並不能簡化事情。僅僅爲kvp的屬性獲取更多有意義的名字會帶來太多的開銷。我想我會堅持使用.Key和.Value – ic3b3rg 2011-05-24 14:59:35
@ ic3b3rg,你總是可以使用匿名類型而不是創建自己的KVP結構:'myDict.Select(Function(x)New With {.P1 = x.Key ,.P2 = x.Value})' – 2011-05-24 15:43:44
我一定會將它記錄下來供將來使用。在這種情況下,我認爲我最好只使用默認屬性。謝謝! – ic3b3rg 2011-05-24 17:28:11