C#确保字节数组中没有重复项

时间:2009-08-26 17:03:20

标签: c# network-programming bytearray

确保没有重复项并且字节数组按顺序排列的最简单方法是什么?比如说来自网络连接?

3 个答案:

答案 0 :(得分: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

你能用“按顺序”来解释你的意思吗?

答案 1 :(得分: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;
    }

答案 2 :(得分:1)

如果你没有抛出异常,或者如果遇到两次相同的值,你可以这样做:

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

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