2013-04-09 59 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") 

將來,我可能希望通過文本文件聲明服務器,並讓程序添加必要的複選框,而不是像我所知的那樣顯式聲明它們,而且這種方法也允許我這樣做。

相關問題