繁体   English   中英

如何声明一个二维数组

[英]how to declare a bidimensional array

我有这个代码:

var test = new string[3, 2];
            for (int i=0; i<3; i++)
            {
                for (int h=0; h<2; h++)
                {
                    test[i, h] = "DataRows: " + i.ToString() + " " + h.ToString();
                }
            }

但是当我尝试查看测试内部的内容时,我看到了这个

快速观看

如果我尝试查看数组的任何项目中的内容,我会收到错误消息:

数组中的项目错误

有人可以向我解释我做错了什么以及正确的方法是什么?

Visual Studio 2022,Blazor Web 程序集,.NET6.0

谢谢

C# 支持多维 arrays以及所谓的锯齿状 arrays

以下示例代码显示了如何同时使用它们

using System;

namespace Test
{
    class Program
    {
        static void Main()
        {
            // Multidimensional array  

            string[,] multidimensionalArray = { { "alpha", "beta", "gamma" }, { "delta", "epsilon", "zeta" } };

            for (int x = 0; x < multidimensionalArray.GetLength(0); x++)
            {
                for (int y = 0; y < multidimensionalArray.GetLength(1); y++)
                {
                    Console.WriteLine(multidimensionalArray[x, y]);
                }
            }

            // Jagged array 

            string[][] jaggedArray = { new string[] { "alpha", "beta", "gamma" }, new string[] { "delta", "epsilon", "zeta" } };

            for (int x = 0; x < jaggedArray.Length; x++)
            {
                for (int y = 0; y < jaggedArray[x].Length; y++)
                {
                    Console.WriteLine(jaggedArray[x][y]);
                }
            }

        }

    }
}

欲了解更多信息,请参阅

法比奥

或者,您可以更轻松地将List数据类型与foreach循环一起使用:

using System.Collections.Generic;

先添加上面的Reference

List<List<string>> list = new List<List<string>>();

list.Add(new List<string>(){"aaa", "bbb"});
list.Add(new List<string>(){"ccc", "ddd"});

foreach(var i in list)//outer list
{
    foreach(string j in i)//inner list
    {
       //your code here
        Console.WriteLine(j);
    }
}

您的代码没有任何问题,您的问题与 arrays 无关。 检查您的 Blazor 调试设置。 尝试使用不同的浏览器并检查您设置断点的位置。

如果您查看屏幕截图,您会注意到异常VSCodeDebugProtocol.ProtocolException - 遵循异常。

这是调试简单控制台应用程序时完全正常运行的循环的屏幕截图。 问题不是你的代码——而是你的调试 state。 控制台调试截图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM