【问题标题】:How to access values from an Arraylist containing an array?如何访问包含数组的 Arraylist 中的值?
【发布时间】:2022-01-14 09:33:14
【问题描述】:

我想尝试使用arraylist,而不是读取datagridview中包含的所有行,希望它更快(是吗?)。

所以,我在数组列表中有 GridRows,每个“行”都包含 GridColumns 作为数组,这是我填充列表的代码(仅限测试)。

问题:我想知道如何让每个 gridRows 进入一个循环并从 gridColumns 中获取 2 个值(字符串)?

将值添加到我的列表(示例):

        var MyDataGrid = new List<GridRows>();
        int rowindex;

        rowindex = 1;
        MyDataGrid.Add(new GridRows(rowindex, new List<GridColumns>
    {
        new GridColumns { Name = "Column2", Value = "LO016" },
        new GridColumns { Name = "Column3", Value = "NewLO016" },
        new GridColumns { Name = "Column4", Value = "7.09" },
        new GridColumns { Name = "Column5", Value = "Test2" },
        new GridColumns { Name = "StatusColumn", Value = "Redacted" }
    }));

        rowindex = 2;
        MyDataGrid.Add(new GridRows(rowindex, new List<GridColumns>
    {
        new GridColumns { Name = "Column2", Value = "LO017" },
        new GridColumns { Name = "Column3", Value = "NewLO017" },
        new GridColumns { Name = "Column4", Value = "14.1" },
        new GridColumns { Name = "Column5", Value = "Test3" },
        new GridColumns { Name = "StatusColumn", Value = "Rejected" }
    }));

谢谢:)

【问题讨论】:

  • 你确定GridRowsArrayList 吗?它似乎是它自己的类型?你的意思是它源自ArrayList?你能显示类型定义吗?

标签: c# arraylist foreach


【解决方案1】:

你试过字典吗? - https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=net-6.0

var MyDataGrid = new Dictionary<int,List<GridColumns>>();
var allColumns = MyDataGrid.Values ;

这里 allColumns 是 List 的列表。

如果您需要列表中 MyDataGrid 中的所有 GridColumns。

allGridColumns = MyDataGrid.Values.SelectMany(x=>x);

如果您已经像您提到的那样对数据进行了哈希处理,那么字典的工作速度会更快并且具有内置方法。

*这段代码是直接写的,可能有一些语法错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多