私はList<byte[]>
. 各バイト配列のサイズは 16 バイトです。最初の 8 バイトは、DateTimeTicks を停止するために使用する C# long データ型のバイナリ表現です。長い同等のものを昇順でソートした場合と同じ順序で一連のバイト配列をソートする方法があるかどうか疑問に思います。各バイト配列が long にデシリアライズされてからソートされた場合、明らかに簡単ですが、デシリアライズせずに逃げる方法はありますか? そうでない場合は、DateTimeTick 値をバイナリ表現に変換するロジックを見つけて、たとえば最初に年をバイナリ形式で表現し、次に月、日、時、分、秒、ミリ秒、.. ? 私の目標は、ソートされたバイト配列をメッセージングネットワーク経由でバイナリ形式で送信する必要があり、現在、ソートのために最初に逆シリアル化する必要があるために多くのリソースを浪費しているため、逆シリアル化ステップをスキップすることです (オブジェクトを送信する前にソートを行う必要があります)ネットワーク上で)、再度シリアライズしてメッセージング システム経由で送信し、再度デシリアライズします。
アイデア、ヒント、解決策は大歓迎です。ありがとうございます。
編集:私は現在、Linq OrderBy 関数を使用して、目的に十分な速度で並べ替えを行い、パフォーマンスに関して、それらの線に沿って何かを調べています。IComparerを提供したとしても、バイト配列で注文できない場合を除き、Linqに固執したいと思います...