在 C# 中创建二维数组的数组

2023-12-26

我只是想创建一个二维数组的数组来存储坐标点。

所以我想要一个数组,其中每个索引返回一个二维数组,我将其用作x and y.

这是我尝试过的:

waypoints = new int[4][,]    {
        {{0},{6, 0}},
        {{1},{1, 1}},
        {{2},{1, 5}},
        {{3},{6, 5}}
    };

我意识到这可能看起来很愚蠢,但我尝试在谷歌上查找它,但没有得到任何好的结果。

它给出了一个错误:

“错误 CS0623:数组初始值设定项只能在变量或变量中使用 字段初始值设定项。尝试使用新的表达式来代替“

我也尝试这样做:

waypoints = new int[4][,] {
        new int[,] {6, 0},
        new int[,] {1, 1},
        new int[,] {1, 5},
        new int[,] {6, 5}
        };

这给出了一个错误:

“错误 CS0846:需要嵌套数组初始值设定项”


多一组大括号{}初始声明中需要:

var waypoints = new int[4][,]   {
    new int[,] {{6}, {0}},
    new int[,] {{1}, {1}},
    new int[,] {{1}, {5}},
    new int[,] {{6}, {5}}
};

这是因为对于这样的二维数组,数组中的每个元素都被视为用于初始化的数组(尽管它通常用于数组的每个元素,例如val[0,0] = 4;).

编辑(评论反馈后):

int[][](作为。。而被知道jagged array,即:数组的数组,其数组成员可以是不同尺寸 https://msdn.microsoft.com/en-us/library/2s05feca.aspx), int[,]是一个二维数组固定尺寸 https://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx。两者都是存储数组的数组,因此数组的每个元素都是一个数组。这解释了为什么需要在其初始化中放置另一个大括号,如上所述。

这样的二维数组,当以不同的方式初始化时,将导致不同的维度(因此有多种初始化方法):

int[,] val = new int[,] { { 6 }, { 0 } }; //resulting in int[2,1]
int[,] val = new int[,] { { 6, 0 } }; //resulting in int[1,2]

无论哪种方式,需要额外的一组大括号.

对于之间的差异jagged array以及多维、固定大小的数组,there https://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrays are already https://stackoverflow.com/questions/12567329/multidimensional-array-vs plenty https://stackoverflow.com/questions/12757570/c-sharp-arrays-string-vs-string?lq=1 good https://stackoverflow.com/questions/468832/why-are-multi-dimensional-arrays-in-net-slower-than-normal-arrays 解释/基准测试 http://www.dotnetperls.com/jagged-2d-array-memory 可用的 https://www.youtube.com/watch?v=3UcJGikWJxs online http://blog.mischel.com/2013/05/08/are-jagged-arrays-faster-than-rectangular-arrays/来自知名来源。我知道,除了OP的兴趣之外,我提供更多有关它的信息并不重要。 (因此,该答案的范围最初仅用于回答失败的初始化)。

据了解,该解决方案不适用于存储坐标点(如 OP 所做的那样)。上面的解释是为了解释为什么他的初始化不起作用,而不是提供存储坐标点的最佳解决方案。至于存储坐标点,Point https://msdn.microsoft.com/en-us/library/system.drawing.point(v=vs.110).aspx in the System.Drawing struct会更合适(如评论中所建议的)。

使用二维数组来表示二维中的单个点笛卡尔坐标 https://en.wikipedia.org/wiki/Cartesian_coordinate_system是一种“杀伤力”,因为一维数组已经能够存储计算机允许的尽可能多的数字,远远超过在笛卡尔坐标系中存储点所需的两个数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中创建二维数组的数组 的相关文章

  • 线程独占数据:如何存储和访问?

    NET 中是否有可能将对象实例绑定到线程的当前执行上下文 这样在代码的任何部分我都可以做类似的事情CurrentThread MyObjectData DoOperation 并确保我访问特定于线程的数据 谢谢 你可以看一下线程静态属性 h
  • C++:字符串流有什么好处?

    谁能告诉我一些在 C 中使用字符串流的实际例子 即使用流插入和流提取运算符输入和输出到字符串流 您可以使用字符串流来转换任何实现operator lt lt 到一个字符串 include
  • 错误:“运行所选代码生成器时出错:包恢复失败”

    我正在尝试将控制器添加到 ASP NET Core 项目中的解决方案中 当我尝试这样做时 我收到此错误 我收到相同的消息 为控制器添加最小依赖项和完整依赖项 我也有这个问题 使用实体框架添加控制器 gt 带有操作的 API 控制器 将给出
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • C 中的 '\0' 和 printf()

    在 C 入门课程中 我了解到在存储字符串时存储空字符 0在它的最后 但是如果我想打印一个字符串怎么办 printf hello 虽然我发现它并没有结束 0通过以下声明 printf d printf hello Output 5 但这似乎不
  • 为什么 ObservableCollection 有两个集合构造函数?

    The 可观察集合 T https msdn microsoft com en us library ms668604类有两个构造函数 可以在其中传递项目集合 一个构造函数接受一个IEnumerable T 另一个List T 鉴于List
  • 对数字和字母元素的数组进行排序(自然排序)

    假设我有一个数组 var arr 1 5 ahsldk 10 55 3 2 7 8 1 2 75 abc huds 我尝试对其进行排序 我得到了类似的东西 1 1 10 2 2 3 5 55 7 75 8 abc ahsldk huds 注
  • 将 std::pair const 转换为 std::pair const 安全吗?

    理论上或实践上 安全吗reinterpret cast a std pair
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • _MM_TRANSPOSE4_PS 在 GCC 中导致编译器错误?

    我第一次在 GCC 而不是 MSVC 中编译我的数学库 并经历了所有的小错误 我遇到了一个根本没有意义的错误 Line 284 error lvalue required as left operand of assignment 284号
  • 使用 FromBase64Transform 解码 base64 文件流

    The example https msdn microsoft com en us library system security cryptography frombase64transform 28v vs 110 29 aspx从M
  • 为 SimpleXMLElements 数组编写 foreach 循环

    我正在使用 PHP 5 中的 XPath 来解析 XML 文档 我遇到的问题是写一个foreach正确显示以下数组 XML 文档示例 值1 值2 xmlfile link to file xml xmlRaw file get conten
  • 链接到ntdll.lib并调用ntdll.dll内部的函数

    我最近正在对私有 API 进行一些研究 我尝试调用诸如NtOpenFile在 ntdll dll 中LoadLibrary and GetProcAddress在运行时 幸运的是 它成功了 今天早上我在电脑上进行了文件搜索 发现ntdll
  • 从 AuthorizeAttribute 继承的属性不起作用

    我目前正在尝试根据用户角色在新的 ASP MVC 5 应用程序中实现安全性 目标是防止用户在没有特定角色 或更高角色 的情况下访问某些控制器或控制器方法 根据到目前为止我所读到的问题 我创建了一个继承 AuthorizeAttribute
  • 选择MySql表数据放入数组中

    我尝试从 mysql 捕获数据并将它们全部放入数组中 认为 users table id name code 1 gorge 2132 2 flix ksd02 3 jasmen skaod2 sql mysql query select
  • C中使用JNI从对象获取对象

    public class Student private People people private Result result private int amount 这是 Java 中类的示例 在C中 我试图获取 学生 中的 人 但失败了
  • 使用 DataGridViewCheckboxCell 真正禁用 DataGridView 中的复选框

    有谁知道如何使用 DataGridViewCheckboxCell 禁用 DataGridView 中的复选框 我可以将其设置为只读 并设置背景颜色 但我无法让复选框本身显示为禁用状态 有什么想法吗 Guess 你必须自己画 http so
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • 小数精度

    我使用小数类型进行高精度计算 货币 但我今天遇到了这个简单的划分 1 1 37 这应该再次得到 37 http www wolframalpha com input i 1 2F 281 2F37 29 http www wolframal
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin

随机推荐

  • 在 IIS 上启用 SSI

    根据这一页 http msdn microsoft com en us library ms525940 28v vs 90 29 aspx 我应该能够 问 如何在 IIS7 上启用 SSI 编辑 哦 我明白我的问题是什么了 我在 VPS
  • git-diff:不考虑行顺序

    我的存储库中有一个由软件程序生成的文件 该程序有时会重新排序该文件上的行 这并不重要 因为行顺序并不重要 问题是 当执行 git diff 时 很难看出任何内容是否真正发生了变化 无论如何 是否有执行不考虑行顺序的差异 或者 如果 git
  • 如何在 Swift 中获取父 ViewController 的类名?

    有没有办法获取当前 子 父VC的类名UIViewController 我的 孩子 VC 推 有两个 父母 UIViewControllers 所以我想知道哪一位是当前的父母 这是一种方法 if let parentVC parent as
  • Vector3 的纬度和经度未在 3D 球体上对齐

    我正在尝试将纬度和经度转换为 Vector3 格式 对于给定的纬度和经度 我想将其转换为 Vector3 其中标记对象将位于此 Vector3 位置 这是我的代码 void createLand double latitude rad la
  • python中在函数中定义函数有什么好处?

    我遇到了这段python代码 粘贴在下面 effbot http effbot org zone re sub htm unescape html我想知道 为什么要在函数中定义函数 import re htmlentitydefs Remo
  • 为什么同步变更操作时还需要同步HashMap.get(key)?

    我用 get put and clear 多个线程对一个 HashMap 进行操作 put and clear 都在一个里面synchronized阻止但是 get 不是 我无法想象这会导致问题 但在我见过的其他代码中 get 几乎总是同步
  • 创建作业时如何指定 OpenShift 镜像

    在 OpenShift 3 3 下 我尝试使用以下命令创建作业oc命令行工具 显然缺乏对作业创建的基于参数的支持 但我无法理解如何使用现有应用程序的图像流 例如 当我的应用程序进行 S2I 构建时 它会推送到app latest图像流 我希
  • Firebase - 类型错误:路径必须是字符串。收到未定义

    我刚刚开始使用 firebase 我不确定 Firebase 的进出 根据我的模糊理解 我已经这样配置了我的应用程序 在主要Index js文件 我需要 const path require path const firebaseConfi
  • MEAN 堆栈 ng-upload-file

    我目前正在使用MEAN js创建一个应用程序 我脚手架一个简单的实体称为Campaign 我希望每个活动都有一张关联的图片 因此 我想改变CRUD接口能够上传一个文件到后端 我注射了ng 文件上传用于创建 FE 的插件Angular 上No
  • SonarQube 报告中 Kotlin 项目的覆盖率为 0%

    我正在设置通过 SonarQube 服务器分析项目 使用的工具集是 科特林 1 3 61 摇篮6 0 1 雅可可0 7 9 声纳Qube 7 5 SonarQube Gradle 插件 2 7 问题是我在 SonarQube 中有 0 0
  • CMake find_package() 不尊重 CMAKE_MODULE_PATH

    我在 CMake 中检测包 glfw 时遇到问题 由于没有 root 权限 我无法将库安装在标准位置 因此我将其安装在 local反而 ls local lib cmake glfw3 glfw3Config cmake home emil
  • Acumatica 配置向导错误:无法在注册表中获取 IIS 版本

    我尝试在 Acumatica 配置向导上创建一个新实例 我收到一条错误消息 无法从注册表获取您的 IIS 版本 虽然我已经安装了IIS功能 我按照有关在 IIS 上安装哪些功能的说明进行操作 它使用的 net框架是4 6 显然这个问题还没有
  • 在Python中按另一个数组对数组的行进行排序

    我正在尝试按另一个数组的值对一个数组的行进行排序 例如 import numpy as np arr1 np random normal 1 1 80 arr2 np random normal 1 1 80 100 我想排序arr1按降序
  • 升级到 Lion 后如何让 virtualenv 正常工作?

    我刚刚从 SnowLeapord 升级到 Lion 现在无法创建 virtualenv 据我了解 升级后有新的 Python 安装 并且没有站点包 并尝试再次安装 pip 和 virtualenv 以及升级到 Xcode4 但我总是收到此错
  • Twilio PHP API Librarie:警告:file_get_contents():SSL 操作失败,代码为 1

    我通过 Composer 安装了官方 Twilio PHP API Librarie twilio sdk 3 12 当我尝试使用测试凭证使用 API 例如发送短信 时 出现错误 警告 file get contents SSL 操作失败
  • 如何引用两个具有相同名称的不同 DLL?

    我正在开发使用 Matrox Imaging Library MIL 的软件 该软件过去使用MIL 9版本 现在我们升级到v10 由于向后兼容性 我们必须继续支持 v9 使用 MIL 及其 DLL 时存在一些困难 MIL 9 和 MIL 1
  • 有效比较当月运行总计与当月总计

    我有一个数据框 df 它包含predicted模型的每日数据 直至 2020 年底 随着一年中的每一天 actual and id数据被添加到该行 每天有多个名字 NAME ID PREDICTED ACTUAL YYYY MM DD Ni
  • Sitecore 8.1 输出缓存未清除

    我们在使用 ASP NET MVC 编写的 Azure Web Apps 中托管的不同服务器上有 CA 和 CD 我在下面添加了这样的内容 以便在发布结束时清除输出缓存
  • 在 iOS 版 WebRTC 中测量麦克风电平

    我有一个 WebRTC iOS 应用程序 在那里我有AVAudioSession and RTCAudioSource 我需要检测麦克风何时开始接收响亮的声音 例如当一个人开始说话时 类似于hark https github com ota
  • 在 C# 中创建二维数组的数组

    我只是想创建一个二维数组的数组来存储坐标点 所以我想要一个数组 其中每个索引返回一个二维数组 我将其用作x and y 这是我尝试过的 waypoints new int 4 0 6 0 1 1 1 2 1 5 3 6 5 我意识到这可能看