2013-04-09 93 views
0

我正在寻找一种在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两个NameIPAddress,但在未来,我想添加更多的服务器通知因此每个人都必须使用Dictionary似乎效率不高。

我不确定这是否可以用我想要的方式,但我会很感激,如果有人能给我一些关于我如何实现我的目标的指针。

+0

所以你想要一个字典的IP地址作为关键和另一个与服务器名作为关键? 你有什么尝试,你想如何填充它们? – 2013-04-09 09:42:21

+0

理想情况下,我想只是一个包含两个列表。我目前使用2x'Dictionary',但这有点麻烦,而且我正在寻找更高效的方法。例如,在将来,我可能想添加诸如'ServerLocation','ServerOS','ServerMemory'等的东西,因此每个人都有一个'Dictionary'似乎很难。 – 2013-04-09 09:47:55

+1

但是,如果您想查找所有这些值,它将是最有效的方法。但是,您应该创建一个包含所有属性的类(例如名称,IP,OS,内存等)。然后你可以在字典中使用它作为值。 – 2013-04-09 09:51:50

回答

0

感谢所有有用的评论,我能够设计出一种通过使用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") 

将来,我可能希望通过文本文件声明服务器,并让程序添加必要的复选框,而不是像我所知的那样显式声明它们,而且这种方法也允许我这样做。

相关问题