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 个布尔值的数组并逐个遍历字节数组。

遇到数组中的每个值时,将其设置为 true。如果您遇到一个已经为真的值,则字节数组的格式无效

我不太理解你所说的“字节数组是有序的”位的意思

您也可以使用位数组

例子:

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

如果你不抛出异常等如果遇到两次相同的值,你可以这样做:

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

如果您按顺序进行排序,则可以对上面设置的对象调用 LINQ 扩展方法 Sort

于 2009-08-26T17:12:45.323 回答