C# - 对多维列表<字符串[,]>进行操作 - 添加项

本文关键字:操作 添加 列表 字符串 | 更新日期: 2023-09-27 18:30:43

从过去一个小时开始,我尝试将项目添加到多维列表中。下面是简短的程序代码:

        List<string[,]> nums = new List<string[,]>();
        for (int i = 0; i < 11; i++)
        {
            for (int j = 0; j < 11; j++)
            {
            }
        }

现在,我尝试按顺序添加项目:

nums[0,0] = i+j;
nums[0,1] = i+j;
nums[1,0] = i+j;

然后继续。我是否应该以这种完全不同的方式编写代码来制作一个动态的二维数组,我可以在其中添加项目以进行交互,或者有办法使用例如"添加"/"添加范围"函数来执行此操作?

例如,当我尝试使用

nums[i].Add(Convert.ToString(i));

我最终得到错误:

错误 CS1061 "string[]"不包含"AddRange"的定义,并且找不到接受类型为"string[]"的第一个参数的扩展方法"AddRange"(是否缺少 using 指令或程序集引用?

AddRange也是如此。

老实说,我在谷歌上搜索并回答了我发现的主要与静态多维数组有关,这些数组已经实现到代码中。我对数组没有经验,将不胜感激地帮助解决此问题。

感谢您的帮助,祝您白天/晚上好。问候米甲

C# - 对多维列表<字符串[,]>进行操作 - 添加项

nums不是

你的数组,而是已经初始化的列表。您应该初始化一个数组,填充它,然后将其添加到列表中,例如

    List<string[,]> nums = new List<string[,]>();
    string[,] arr1 = new string[10, 10];
    for (int i = 0; i < 11; i++)
    {
        for (int j = 0; j < 11; j++)
        {
          arr1[i,j] = "Test"; // for example
        }
    }
   nums.Add(arr1);
在我看来,

您正在尝试将List<string[,]>用作 2D 数组。也许你只是想要一个List<string[]>,它将是一个一维数组的列表,并且对你来说作为nums[1][0] = xxx是有意义的。您似乎也将整数值存储为字符串,因此您可能想要 int[,] 或 List<int[]> .

如果您希望能够使用"添加"和"删除"并使其动态化,则可以使用 List<List<string>>(或 int)。然后你可以使用:

nums.Add(new List<string>());
nums.Add(new List<string> { "1", "2", "3" });
nums[nums.Count - 1].Add("4");

等等。

如果您确实想添加到List<string[,]>请使用:

nums.Add(new string[4, 4]); // or whatever ranges
nums[nums.Count - 1][0, 1] = "1";