C# 中任意等级数组的索引

2023-12-26

我需要迭代任意排名的数组。这是为了阅读和写作,所以GetEnumerator不管用。

Array.SetValue(object, int)不适用于多维数组。Array.SetValue(object, params int[])需要过多的算术来迭代多维空间。它还需要动态调用来绕过params签名的一部分。

我很想固定数组并用指针迭代它,但我找不到任何说明多维数组保证是连续的文档。如果它们在尺寸的末尾有填充,那么这是行不通的。我也希望避免不安全的代码。

有没有一种简单的方法可以仅使用单个索引来顺序寻址多维数组?


多维数组保证是连续的。来自 ECMA-335:

数组元素应按行主序排列在数组对象中(即与最右边的数组维度关联的元素)应连续布置从最低到最高指数)。

所以这有效:

int[,,,] array = new int[10, 10, 10, 10];

fixed (int* ptr = array)
{
    ptr[10] = 42;
}

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

C# 中任意等级数组的索引 的相关文章

随机推荐

  • 图例中的分数,多种颜色

    I need to create a complex legend which includes a fraction and the numerator and denominator are in different colors 是否
  • Jquery 可克隆输入 foreach 覆盖值

    我目前正在创建一个可克隆的 id 输入字段 唯一的问题是在验证 id 后提交时 它会在控制台中为所有重复项显示相同的值 我想要实现的只是克隆字段 使其通过验证并在提交时返回 JSON 中每个克隆字段的值 非常感谢任何帮助 杰斯小提琴 htt
  • JSON - 简单获取整数而不是长整型

    如何获得Integer代替Long来自 JSON 我想在我的Java程序中读取JSON 但是当我得到一个数字的JSON值时 我的解析器返回一个数字类型Long 我想得到一个Integer 我试图将 long 转换为整数 但是 java 抛出
  • 结构化分析中的数据流程图的 UML 类似物是什么?

    早在黑暗时代 20世纪80年代中期 我用过数据流程图 http en wikipedia org wiki Data Flow Diagram from 结构化分析 http en wikipedia org wiki Structured
  • nvd3.js:无法将 onClick 事件与 svg 中的数据点绑定

    我试图将数据点与 onclick 事件绑定 以便我可以显示一个带有一些附加详细信息和链接的覆盖框 我正在使用 nv point类来访问数据点 问题是我无法将 onclick 事件注册到这些数据点 这是代码 d3 selectAll nv p
  • Cassandra .csv 导入错误:批量太大

    我正在尝试通过复制命令将数据从 csv 文件导入到 Cassandra 3 2 1 文件中只有 299 行 14 列 我收到错误 无法导入 299 行 InvalidRequest code 2200 无效查询 message 批次太大 我
  • 使用 javascript 更快地选择元素

    我想知道是否有更快的方法来选择它 document getElementById container getElementsByTagName p 0 getElementsByTagName strong 1 innerText 结构是
  • 从基类方法克隆派生类

    我有一个抽象基类Base它具有一些共同的属性 以及许多实现不同逻辑但很少有附加字段的派生属性 public abstract Base protected int field1 protected int field2 protected
  • 获取 x86-64 指令的大小

    我需要一个可以计算 x86 64 指令长度的函数 例如 它可以像这样使用 char ret 0xc3 size t length instructionLength ret length在此示例中将设置为 1 我不想包含整个反汇编库 因为我
  • 编译静态库与标准库的链接(静态)

    我正在尝试编译一个静态库 我们称之为library a 该库消耗标准库的资源 该库可以通过某种方式静态链接标准库 我已经证明了类似的事情 g c library static libstdc o library o ar rcs libra
  • 如何观察目录的变化? [复制]

    这个问题在这里已经有答案了 在 python 核心中找不到任何东西来执行此操作 谁能推荐一个库或 电池 来做到这一点 理想情况下 我希望它是可移植的 但如果它仅适用于 Unix 我的服务器 也没关系 在 Linux 上 您可能对 pyino
  • Reflection.Emit 与 CodeDOM

    使用 Reflection Emit 库与 CodeDOM 在运行时动态生成代码有哪些优缺点 我正在尝试根据运行时以 XML 形式提供的元数据在系统中生成一些 相对复杂的 动态类 我将生成扩展应用程序程序集中现有类的类 实现附加接口 添加方
  • 矢量绘图中的微光动画

    我一直在尝试使用动画矢量可绘制图标实现闪烁动画 我正在寻找的效果与此类似 我已经用过Facebook 微光库 https facebook github io shimmer android 为了获得这种效果 尽管这正是我所需要的 但我想使
  • Typescript Array[T] 接受 {..T} 作为有效类型

    使用时这咬了我useState
  • 检索 Sitecore 项目在内容树中的位置 A 以及位置 B 中的用户

    给定以下内容树 我如何将经销商与汽车关联起来 以便获得这样的 URL http website Dealerships JimWhite 福特 http website Dealerships JimWhite Ford 我需要能够在汽车下
  • 有没有办法在 Kotlin 中使用初始化函数构造 HashSet?

    从文件中读取星星2016 年 Facebook 黑客杯 https www facebook com hackercup problem 910374079035613 Boomerang Constellations问题 可以定义以下扩展
  • 如何调用同步谷歌日历

    首先阅读以下问题 从 Android 上的日历提供程序中删除事件 https stackoverflow com questions 18774394 delete events from calendar provider on andr
  • Eclipse 无法识别字符串和类

    我保存了一个由 eclipse 构建的项目 然后我的电脑就死机了 当我修复它并重新格式化时 我重新下载了 eclipse 等 实际上 当我按下 eclipse exe 时 它会显示 eclipse juno 图标 但窗口的名称是 Java
  • C++“内存屏障”示例[重复]

    这个问题在这里已经有答案了 我正在阅读有关 volatile 关键字的问题的答案 https stackoverflow com a 2485177 997112 https stackoverflow com a 2485177 9971
  • C# 中任意等级数组的索引

    我需要迭代任意排名的数组 这是为了阅读和写作 所以GetEnumerator不管用 Array SetValue object int 不适用于多维数组 Array SetValue object params int 需要过多的算术来迭代