是否可以使用自定义结构代替 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(Of class1,class2)(不适用于其他类型)。
我尝试将 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”。 最佳答案
您需要显式创建 myKvp
的实例。您可以使用 Linq 轻松完成:
For Each kvp As myKvp In myDict.Select(Function(x) New myKvp(x.Key, x.Value))
Dim c1 = kvp.P1
Dim c2 = kvp.P2
Next
关于.net - 如何使用自定义结构代替 KeyValuePair?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6104060/