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

本文关键字:元素 列表 存在 添加 | 更新日期: 2023-09-27 18:26:53

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

这是我的目标:

    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;

首先我收集主机名和机器类型:

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

如果有人能提供一个使用嵌套列表的例子,作为额外的奖励,因为我也需要实现列表驱动器,因为机器有多个驱动器。感谢任何帮助,因为我有点困,谢谢。

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

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

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

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

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