7

SQLiteDatabase にバイト配列を格納するアプリケーションを作成しました。この同じアプリケーションも、'x' 秒ごとにデータベースからバイト配列を選択します。

私のアプリケーションのデータフローは次のとおりです。

アプリケーション - > SQLiteDatabase - > アプリケーション

私の質問は:

SQLiteDatabase からのすべての着信バイト配列で 1 つのバイト配列を埋めるにはどうすればよいですか?

例えば:

Byte[] Data;

次のバイト配列を入力する必要があります。

Byte[] IncomingData;

IncomingDataは常にSQLiteDatabaseによって埋められています。

データは常にIncomingDataで満たされる必要があります。

誰かが私を助けることができますか?

4

2 に答える 2

4

使用するだけConcatです:

data1.Concat(IncomingData);

System.Linq名前空間参照を追加する必要があります。

于 2013-02-26T11:04:12.557 に答える
4

いくつかの方法があります。

  1. List<byte>とを使うList.AddRange
  2. LINQ を使用するEnumerable.Concat
  3. Array.Copyすべて手動で使用および実行する

3 つのうち、List必要な配列コピーの量を (おそらく) 削減するため、可能な場合は を使用します。これが List の目的です。特定の容量の配列をバックグラウンドで使用します。4 から始まり、容量に達すると 2 倍になります。容量は、配列の場合と同じように、list.Capacityプロパティまたはコンストラクターを使用して大きな数値に設定することもできます。intを使用して、いつでもリストを元に戻すことができますList.ToArray

Enumerable.Concat は最小サイズの配列のみを作成する可能性が高いため、さらに s を取得するたびに新しい配列を作成する必要がありますbyte

于 2013-02-26T11:07:52.053 に答える