确保没有重复项并且字节数组按顺序排列的最简单方法是什么?比如说来自网络连接?
答案 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扩展方法对上面的对象进行排序