c# - 如何在 C# 中将多维数组解释为一维数组,反之亦然
问题描述
我知道已经有一个关于将多维数组转换为一维数组的问题,但是所有的答案都是低效的。所有这些都基于制作数组的副本,这是不必要的。多维数组(非锯齿状)存储在连续的内存块中,因此在该块的一维解释和多维解释之间来回转换不应该涉及复制整个数组,而是应该基本上是免费的。实际上应该可以让两个数组共享相同的内存,这样当一个被更新时,另一个也会更新。
这可以在 C# 中完成吗?
解决方案
你不能。与其他任何东西完全不同的是,数组,就像 .NET 中的许多东西一样,都是对象。这意味着它们有一个对象头,位于用于存储其表示的其他内存之前。
从逻辑上讲,对于两种不同类型的对象,您不能有两个不同的对象标头,占用内存中的相同位置。
推荐阅读
- javascript - 谁能告诉我我做错了什么
- vue.js - 如何在 vue-test-utils 和 jest 中模拟 $nuxt 对象
- python - C和Python中的浮点数问题
- java - 无法确定标签的类型
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#D81B60"/> </shape>
这工作得很好,然后突然开始显示错
- wordpress - Wordpress 恢复旧数据库
- java - 根据权限从数据库中获取数据
- java - 将 JsonArray 对象从字符串解析为返回异常的 java 对象
- jquery - jQuery 函数 vs Vue JS - 用于 UI 组件开发
- javascript - 意外的令牌“出口”NestJS
- android-studio - 从广播接收器更改片段