添加到已存在某些元素的列表

时间:2014-10-17 20:02:44

标签: c# list

我有一个列表,在尝试添加更多元素之前已经存在一些元素。我检索机器名称和类型,然后使用机器名称收集机器上的信息。

这是我的目标:

    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.
    }

如果任何人都可以提供使用嵌套列表的示例,那么这也是一个额外的好处,因为我还需要实现列表驱动器,因为机器有多个驱动器。感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

您正在尝试编辑现有列表中的对象,而不是添加更多对象。

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

如果由于某种原因需要使用索引,那么:

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