繁体   English   中英

vb.net词典词典

[英]vb.net Dictionary of Dictionary

晚上好,

有谁有任何想法我可以在VB.net中做这样的事情?

我遇到的问题是将iDatabase声明为iTable的字典,因为它需要类类型。

任何帮助将不胜感激。

问候,科林

Module Module1
    Sub Main()
        Dim Database As New iDatabase
        Dim Users = Database.Add("User", User)
        Users.Add(Guid.NewGuid, New User() With {.Username = "username"})
    End Sub
End Module

Public Class iDatabase
    Inherits Dictionary(Of String, iTable)

    Public Class iTable(Of Entity As Class)
        Inherits Dictionary(Of Guid, Entity)

    End Class
End Class

Public Class User
    Public Property Username As String
End Class

我觉得你有点过分复杂了。 看起来你想要一个“字典词典”,你有"User"作为键,然后在该键下,另一个字典条目带有映射到UserGuid键。 在这种情况下,您可能根本不需要子类Dictionary(Of TKey, TValue)

如果您要有多个类(例如AdminUser ),那么您应该使用通用接口。 让我们看一个完整的例子:

Public Interface IUser
    Property Username As String
End Interface

Public Class User Implements IUser
    Public Property Username As String Implements IUser.Username
End Class

Public Class Admin Implements IUser
    Public Property Username As String Implements IUser.Username
End Class

Sub Main()
    Dim Database As New Dictionary(Of String, Dictionary(Guid, IUser))
    Database.Add("User", New Dictionary(Of Guid, IUser))
    Database("User").Add(Guid.NewGuid, New User() With {.Username = "username"})
    Database("User").Add(Guid.NewGuid, New Admin() With {.Username = "username"})
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM