Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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# 将一个字节[]填充为多个字节[]s_C#_Visual Studio_Sqlite_Bytearray - Fatal编程技术网

C# 将一个字节[]填充为多个字节[]s

C# 将一个字节[]填充为多个字节[]s,c#,visual-studio,sqlite,bytearray,C#,Visual Studio,Sqlite,Bytearray,我创建了一个应用程序,在我的SQLiteDatabase中存储字节数组。 该应用程序还每隔“x”秒从数据库中选择字节数组 我的应用程序的数据流如下所示: 应用程序->SQLITE数据库->应用程序 我的问题是: Byte[] Data; 如何用来自SQLiteDatabase的所有传入字节数组填充一个字节数组 例如: Byte[] Data; 需要用以下字节数组填充: Byte[] IncomingData; SQLITE数据库不断填充输入数据 数据需要不断地用收入数据填充 有人能帮我吗?

我创建了一个应用程序,在我的SQLiteDatabase中存储字节数组。 该应用程序还每隔“x”秒从数据库中选择字节数组

我的应用程序的数据流如下所示:

应用程序->SQLITE数据库->应用程序

我的问题是:

Byte[] Data;
如何用来自SQLiteDatabase的所有传入字节数组填充一个字节数组

例如:

Byte[] Data;
需要用以下字节数组填充:

Byte[] IncomingData;
SQLITE数据库不断填充输入数据

数据需要不断地用收入数据填充


有人能帮我吗?

只要用
Concat

data1.Concat(IncomingData);

您需要添加
System.Linq
名称空间引用。

您可以采取以下几种方法

  • 使用
    列表
  • 使用LINQ's
  • 使用并手动完成所有操作
  • 在这三种方法中,如果可能,请使用
    列表
    ,因为它将(很可能)减少所需的阵列复制量。这就是制作列表的目的,他们在幕后使用一个数组,它从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将始终从这两个数组中创建一个新数组,如果每隔几秒钟发生一次,那就需要大量复制。可以使用容量初始化列表,并且只有在达到该容量时才会复制该列表。是的,今天。