C# 将一个字节[]填充为多个字节[]s
我创建了一个应用程序,在我的SQLiteDatabase中存储字节数组。 该应用程序还每隔“x”秒从数据库中选择字节数组 我的应用程序的数据流如下所示: 应用程序->SQLITE数据库->应用程序 我的问题是:C# 将一个字节[]填充为多个字节[]s,c#,visual-studio,sqlite,bytearray,C#,Visual Studio,Sqlite,Bytearray,我创建了一个应用程序,在我的SQLiteDatabase中存储字节数组。 该应用程序还每隔“x”秒从数据库中选择字节数组 我的应用程序的数据流如下所示: 应用程序->SQLITE数据库->应用程序 我的问题是: Byte[] Data; 如何用来自SQLiteDatabase的所有传入字节数组填充一个字节数组 例如: Byte[] Data; 需要用以下字节数组填充: Byte[] IncomingData; SQLITE数据库不断填充输入数据 数据需要不断地用收入数据填充 有人能帮我吗?
Byte[] Data;
如何用来自SQLiteDatabase的所有传入字节数组填充一个字节数组
例如:
Byte[] Data;
需要用以下字节数组填充:
Byte[] IncomingData;
SQLITE数据库不断填充输入数据
数据需要不断地用收入数据填充
有人能帮我吗?只要用
Concat
:
data1.Concat(IncomingData);
您需要添加
System.Linq
名称空间引用。您可以采取以下几种方法
列表
和列表
,因为它将(很可能)减少所需的阵列复制量。这就是制作列表的目的,他们在幕后使用一个数组,它从4开始,达到容量时加倍。甚至可以使用list.capacity
属性或采用int
的构造函数将容量设置为某个较大的数字,就像使用数组一样。您始终可以使用list.ToArray
将列表带回
Enumerable.Concat可能只会创建一个最小大小的数组,这意味着每次获得更多的
字节时都需要创建一个新数组。填充”是什么意思?是否要将其合并?是的,例如,在字符串中,它将类似于:string str1=“12”;字符串str2=“13”;如果你想附加它们,结果会是:1213,我的字节数组也需要相同的东西为什么不只是使用字节列表呢?@judgeja是的,我现在使用的是一个带有.Concat函数的列表,它可以工作@Mobstaa我不确定Concat是最好的方式。我不确定Linq在引擎盖下做什么,但它可能过度复制周围的东西。将性能与正常的List.Add(byte b)方法进行比较。我在键入“data1”时添加了System.Linq。intelli sense将帮助我处理Concat,但它要求“需要在这些大括号中插入什么?”mobstaa仅供参考,指定的是泛型类型忽略intellisense,您可以将其用作泛型方法,但是你不想在你的情况下使用
好的,谢谢,我看到上面的答案建议在我的应用程序中也可以使用字节列表,使用Concat的唯一问题是我需要在创建数组时指定数组的长度,因为我永远不知道我的字节数组将有多大。@mobsta如果使用byte[]
而没有大小初始值设定项,它将无法编译。如果您不知道大小,请使用List
,您仍然可以使用Concat
。为什么会有转换为列表的开销?正如你所说,他们在后台使用数组。实际上是ToArray
而不是AsArray
。Concat将始终从这两个数组中创建一个新数组,如果每隔几秒钟发生一次,那就需要大量复制。可以使用容量初始化列表,并且只有在达到该容量时才会复制该列表。是的,今天。