2014-10-17 90 views
0

我有一個列表,在嘗試添加更多元素之前已經有一些元素存在。我檢索機器名稱和類型,然後使用機器名稱收集機器上的信息。添加到某個元素已經存在的列表中

這是我的目標:

public string HostName; 
    public string machinetype; 
    public string osVersion; 
    public ulong cDriveFreeSpace; 
    public string sqlVersion; 
    public string ieVersion; 
    public string adobeVersion; 
    public ulong totalRAM; 
    public string ProcessorDescription; 
    public string PhysicalProcessors; 
    public string LogicalCoreProcessors; 
    public ulong MemorySize; 
    public List<SystemTools.LogicalDriveInfo> Drives = new List<SystemTools.LogicalDriveInfo>(); 
    public string OSArchitecture; 
    public string DotNetVersion; 

首先我收集的主機名和machinetype:

List<Machines> result = new List<Machines>(); 
foreach (DataRow dr in dataTable.Rows) 
       { 
        result.Add(new Machines((dr.IsNull("HostName") ? "" : dr["HostName"]).ToString(), dr["machinetype"].ToString())); 
       } 
       return result; 

我要的是對每一臺機器名走出去,找回我所列舉的信息。我已經有方法來做到這一點,但我已經弄糊塗瞭如何以正確的方式將這些元素添加到列表中。

我在想像下面這樣的東西。我想避免創建一個新的機器類型,因爲這將刪除主機名和machinetype

for (int i = 0; i < machineList.Count; i++) 
    { 
     machineList.insert(i, ????) //do this for each element I want to add. 
    } 

作爲一個額外的獎金,如果任何人都可以提供使用嵌套列表的一個例子,因爲我需要實現驅動器列表,以及,因爲機器有多個驅動器。任何幫助表示讚賞,因爲我有點卡住了,謝謝。

+1

添加新的元素添加到列表不會刪除現有的。所以我不明白這裏的問題是什麼。如果您想詳細說明,請返回並修正您的代碼示例,以使其有意義。發佈一個Machine類的最小例子,用完整的聲明(並非所有那些與該問題無關的其他屬性),並解釋什麼是「machineList」,以及你真的想用它來做什麼您已從數據庫中檢索機器項目的數據。 – 2014-10-17 20:08:12

+0

我需要使用機器名稱來搜索域,並將機器信息添加到我的清單 machinelist。 因此,例如,數據庫返回兩臺機器。我們有user-pc1和user-pc2都是相同的類型。目標是出去並從域上的兩臺PC上檢索信息並將其添加到列表中。所以最初的對象將是: 主機名:user-pc1 機器類型:東西 osVersion:????? ieVersion:????? 所以我需要插入osVersion,ieVersion等在指定的索引。 – user1729696 2014-10-17 20:12:27

回答

1

您正在嘗試編輯現有列表中的對象,而不是添加更多對象。

foreach (var machine in machineList) 
{ 
    machine.osVersion = "...."; 
} 

如果你有需要使用索引出於某種原因,則:

for (int i = 0; i < machineList.Count; i++) 
{ 
    var machine = machineList[i]; 
    machine.osVersion = "...."; 
} 
+0

就是這樣。這是一個漫長的一天,謝謝。 – user1729696 2014-10-17 20:34:12

相關問題