【发布时间】:2016-09-29 18:33:45
【问题描述】:
我从发送周期性数据包的硬件源中的结构化数据开始使用 IntPtr。线程从 Intptr 缓冲区复制数据包并将 byte[] 放入队列中。稍后读取队列并将 byte[] 转换为使用 this answer 的结构,并成为 Packet 类型的集合(数组)。
struct Packet {
long time;
int field1;
short field2;
}
Packet[] array_of_packet;
不重复结构定义,我想使用数据,就好像它是一个数组结构。
struct ArrayOfPacket {
long[] time;
int[] field1;
short[] field2;
}
ArrayOfPacket data;
这种格式允许其他函数将它们用作向量:
Plot(data.time, data.field1);
【问题讨论】:
-
我输了!无论如何,它应该是 long[] 时间而不是 long time[]
-
嗯,这是一个完全不同的布局。您需要逐项手动复制所有内容。
-
你真的应该考虑创建immutable structs。
标签: c# arrays data-structures struct