为每个索引创建一个包含多个数据条目的列表
问题描述:
我正在寻找一种在VB.net中创建某种服务器索引列表的方法,以便我可以即时访问其名称和IP地址。我查看了List类和Dictionary对象,但我不确定他们是否能够在这种情况下完成这项工作。为每个索引创建一个包含多个数据条目的列表
Basicaly,我想类似这样的结构,当我宣布ServersList
-
chkTTSA - Name = TTSA
IPAddress = 192.168.1.6
chkTTSB - name = TTSA
IPAddress = 192.168.1.7
然后,当我通过一个字典循环访问数据,我想使用的名称和IP地址在ServerList
填充另一个词典 -
ServersToPing(ServersList(Name)) = ServersList(IPAddress)
目前,我使用的是Dictionary
两个Name
和IPAddress
,但在未来,我想添加更多的服务器通知因此每个人都必须使用Dictionary
似乎效率不高。
我不确定这是否可以用我想要的方式,但我会很感激,如果有人能给我一些关于我如何实现我的目标的指针。
答
感谢所有有用的评论,我能够设计出一种通过使用Class来实现我所需要的方法。
这种方法是可扩展的,并且可以让我轻松地在将来添加更多的信息,并且当需要
Partial Public Class SingleServer
Public ReadOnly Name As String
Public ReadOnly IPAddress As String
Public ReadOnly Ping As Boolean
'**
' Constructor
'*
Public Sub New(SingleName As String, SingleIPAddress As String, Optional SinglePing As Boolean = False)
Name = SingleName
IPAddress = SingleIPAddress
Ping = SinglePing
End Sub
End Class
使用,我第一次初始化SINGLESERVER对象的实例...
Public ReadOnly ServersList As New Dictionary(Of String, SingleServer)
...然后根据需要,我可以添加信息...
ServersList("chkTTSA") = New SingleServer("TTSA", "192.168.1.6")
将来,我可能希望通过文本文件声明服务器,并让程序添加必要的复选框,而不是像我所知的那样显式声明它们,而且这种方法也允许我这样做。
所以你想要一个字典的IP地址作为关键和另一个与服务器名作为关键? 你有什么尝试,你想如何填充它们? – 2013-04-09 09:42:21
理想情况下,我想只是一个包含两个列表。我目前使用2x'Dictionary',但这有点麻烦,而且我正在寻找更高效的方法。例如,在将来,我可能想添加诸如'ServerLocation','ServerOS','ServerMemory'等的东西,因此每个人都有一个'Dictionary'似乎很难。 – 2013-04-09 09:47:55
但是,如果您想查找所有这些值,它将是最有效的方法。但是,您应该创建一个包含所有属性的类(例如名称,IP,OS,内存等)。然后你可以在字典中使用它作为值。 – 2013-04-09 09:51:50