gpt4 book ai didi

c# - 如何将二维数组中的一行值复制到一维数组中?

转载 作者:可可西里 更新时间:2023-11-01 03:14:04 26 4
gpt4 key购买 nike

我们有以下对象

int [,] oGridCells;

仅与固定的第一个索引一起使用

int iIndex = 5;
for (int iLoop = 0; iLoop < iUpperBound; iLoop++)
{
//Get the value from the 2D array
iValue = oGridCells[iIndex, iLoop];

//Do something with iValue
}

.NET 中有没有一种方法可以将固定第一个索引处的值转换为一维数组(而不是通过循环值)?

如果数组只循环一次,我怀疑它会加快代码速度(而且很可能会使代码变慢)。但是,如果对数组进行大量操作,那么单维数组会比多维数组更有效。

我问这个问题的主要原因是看看它是否可以完成以及如何完成,而不是将其用于生产代码。

最佳答案

以下代码演示了将 16 个字节(4 个整数)从二维数组复制到一维数组。

int[,] oGridCells = {{1, 2}, {3, 4}};
int[] oResult = new int[4];
System.Buffer.BlockCopy(oGridCells, 0, oResult, 0, 16);

您还可以通过提供正确的字节偏移量,有选择地仅从数组中复制 1 行。此示例复制 3 行二维数组的中间行。

int[,] oGridCells = {{1, 2}, {3, 4}, {5, 6}};
int[] oResult = new int[2];
System.Buffer.BlockCopy(oGridCells, 8, oResult, 0, 8);

关于c# - 如何将二维数组中的一行值复制到一维数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com