Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象[,]到对象[]或对象[]到对象[]_C#_Arrays - Fatal编程技术网

C# 对象[,]到对象[]或对象[]到对象[]

C# 对象[,]到对象[]或对象[]到对象[],c#,arrays,C#,Arrays,我尝试以下方法。我从以下两个通道的二维OANL缓冲区阵列中获取了数据: object[,] buffer; buffer = new buffer[2,1000000]; 现在我只想将一个通道提取到一维数组中 object[] bufferdata = buffer(1,???); 有人知道如何在新数组中获取这些数据,而无需在循环中复制缓冲区(1,i)的每个值。 Iam还能够使用这种二维数组对象[][]缓冲区。也许这是最好的解决方案。从2D数组对象[,]到1D数组对象[]总是很慢。如果您不使

我尝试以下方法。我从以下两个通道的二维OANL缓冲区阵列中获取了数据:

object[,] buffer;
buffer = new buffer[2,1000000];
现在我只想将一个通道提取到一维数组中

object[] bufferdata = buffer(1,???);
有人知道如何在新数组中获取这些数据,而无需在循环中复制缓冲区(1,i)的每个值。
Iam还能够使用这种二维数组对象[][]缓冲区。也许这是最好的解决方案。

从2D数组
对象[,]
到1D数组
对象[]
总是很慢。如果您不使用
对象
并且知道存储的类型,那么它会有所帮助
Buffer.BlockCopy()
对您没有帮助,因为它只适用于原语数组

我建议将缓冲区存储在每个通道的锯齿状数组
object[][]
中,然后进行简单的检索
object[]data=buffer[I]


或者创建一个长1D数组,大小为
2*1000000
,并按通道分层数据。然后您可以使用
Array.Copy()
或者
Buffer.BlockCopy()
如果您知道要将第一个
1000000
元素移出或最后一个
1000000
元素移出的类型,则可以使用
Array.Copy()

object[][]到object[]是直接的(除非您想将[m]]对象移出),但是对于object[,]您必须复制可能的Thx副本,但我的问题还包括,可能最好使用某种类型的object[][]数组来转换为object[]数组,而不进行复制。如果要在不进行复制的情况下进行转换,则必须创建一个数组数组。所以它必须是object[]。如果您对对象[,]做得不好,那么复制是一项很难的要求。很酷,那么如何从对象[]复制到对象[?