我有一个列表,在尝试添加更多元素之前已经存在一些元素。我检索机器名称和类型,然后使用机器名称收集机器上的信息。
这是我的目标:
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;
首先我收集HostName和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;
我想要的是每个机器名称出去并检索我列出的信息。我已经有了这样做的方法,但我对如何以正确的方式将这些元素添加到列表中感到困惑。
我在想下面的事情。我想避免创建一个新的机器类型,因为这会删除主机名和机器类型
for (int i = 0; i < machineList.Count; i++)
{
machineList.insert(i, ????) //do this for each element I want to add.
}
如果任何人都可以提供使用嵌套列表的示例,那么这也是一个额外的好处,因为我还需要实现列表驱动器,因为机器有多个驱动器。感谢任何帮助,谢谢。
答案 0 :(得分:1)
您正在尝试编辑现有列表中的对象,而不是添加更多对象。
foreach (var machine in machineList)
{
machine.osVersion = "....";
}
如果由于某种原因需要使用索引,那么:
for (int i = 0; i < machineList.Count; i++)
{
var machine = machineList[i];
machine.osVersion = "....";
}