0

たとえば、ネットワーク接続から、重複がなく、バイト配列が適切であることを確認する最も簡単な方法は何ですか?

4

3 に答える 3

3

.NET 3.5 を使用している場合は、独自のアイテムを簡単に取得できます...

var ba = new byte[6];

ba[0] = 1;
ba[1] = 1;
ba[2] = 2;
ba[2] = 2;
ba[3] = 3;
ba[4] = 4;
ba[5] = 4;

var res = ba.Distinct().ToArray();  // unique

「順番に」の意味を説明できますか?

于 2009-08-26T17:10:14.987 に答える
2

256 個のブール値の配列を作成し、バイト配列を 1 つずつ反復処理します。

配列内の各値を見つけたら true に設定します。すでに真の値に遭遇した場合、バイト配列は無効な形式です

「バイト配列は正常です」というビットの意味をよく理解していません

bitarray を使用することもできます

例:

bool CheckForDuplicates(byte[] arr)
    {
        bool[] map = new bool[256];

        foreach (byte b in arr)
        {
            if (map[b] == true)
                return false;
            map[b] = true;
        }
        return true;
    }
于 2009-08-26T17:08:56.580 に答える
1

同じ値が2回発生した場合に例外などをスローする方法がない場合は、次のことができます。

var set = new HashSet<byte>(byteArray);

並べ替えを意味する順序である場合は、上から設定されたオブジェクトでLINQ拡張メソッドSortを呼び出すことができます

于 2009-08-26T17:12:45.323 に答える