确保没有重复并且字节数组有序的最简单方法是什么,比如来自网络连接?
nil
问问题
544 次
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 回答