You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何初始化存储二维数组的List<>?对应正确写法或适配数据结构是什么

问题解决方案

方案1:保留现有List<int[,]>数据结构

你的原始写法报错是因为集合初始化器内的{1, 2}这类内容无法被编译器自动识别为int[,]类型的元素,需要显式声明每个二维数组元素,正确初始化代码如下:

List<int[,]> table = new List<int[,]>
{
    new int[,] { { 1, 2 } },
    new int[,] { { 3, 4 } },
    new int[,] { { 5, 6 } },
    new int[,] { { 7, 8 } }
};

该写法能正常运行,但访问元素时需要用table[0][0, 0]、table[0][0, 1]的格式取到二元组内的两个数值,不符合你直接获取完整元组的调用需求。

方案2:更适配需求的优化数据结构

如果要实现table[0]直接拿到完整二元组的效果,推荐两种改动量极小、可以最大程度保留你现有数据格式的实现:

  • 选择A:值元组(C# 7.0及以上版本支持,优先推荐)
List<(int, int)> table = new List<(int, int)>
{
    (1, 2),
    (3, 4),
    (5, 6),
    (7, 8)
};

调用时table[0]直接返回第一个二元组,可通过table[0].Item1、table[0].Item2读取内部数值,也可以在声明时自定义字段名,比如List<(int SerialNo, int Value)>,后续可以用table[0].SerialNo的方式更直观的取值。

  • 选择B:一维数组列表
    如果不想使用元组结构,也可以把二维数组替换为一维数组,初始化格式和你原来的写法高度一致:
List<int[]> table = new List<int[]>
{
    new int[] { 1, 2 },
    new int[] { 3, 4 },
    new int[] { 5, 6 },
    new int[] { 7, 8 }
};

调用时用table[0][0]、table[0][1]即可读取对应数值,下标比二维数组更简洁。

内容的提问来源于stack exchange,提问作者Level 42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:27:03