c# - 在 C# 中将列表转换为 3D 数组
问题描述
有谁知道如何将列表转换为 3D 数组?我的输入列表实际上将始终是 3D 数组的“扁平化”版本,因此我将始终知道数组的尺寸。任何线索都会很棒
T[,] output = new T[height, width];
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
output[i, j] = input[i * width + j];
}
}
这是将列表/数组转换为 2D 数组,但我似乎并没有将头转换为 3D 数组
解决方案
您将需要知道三个 3D 数组的每个维度。假设它们是d1
、d2
和d3
,那么您可以使用此代码来获取所需的数组,假设是一个int
数组:
int i, j, k, p;
int[,,] Arr = new int[d1, d2, d3];
p = 0;
for (i = 0; i < d1; i++)
for (j = 0; j < d2; j++)
for (k = 0; k < d3; k++)
a[i, j, k] = lst[p++];
如果您想要一个与您的示例类似的解决方案,您可以试试这个:
int i, j, k;
int[,,] Arr = new int[d1, d2, d3];
for (i = 0; i < d1; i++)
for (j = 0; j < d2; j++)
for (k = 0; k < d3; k++)
a[i, j, k] = lst[i * d2 * d3 + j * d3 + k];
推荐阅读
- python - 在条件下填充df的NaN值
- github - Dependabot 无法创建拉取请求,因为一个或多个其他依赖项需要与此更新不兼容的版本
- android - 尝试 Flutter hello world 代码时出现“无法应用插件 [id 'kotlin-android']”
- vue.js - BootstapVue b-table:v-if 不适用于更新的项目
- vue.js - 如何从广播集团获得价值?
- python - 如何在 Python 中播放声音?
- linux - 我尝试了很多东西,但我无法在 Ubuntu 中安装 OpenCV 3.1
- sql-server - 仅插入新行而不执行任何选择时的 SQL Server 死锁
- nativescript - nativescript 是否在 Android 4 手机上运行?
- android - 活动必须被导出或包含一个意图过滤器——即使有一个意图过滤器