네트워크 연결에서 중복이없고 바이트 배열이 올바른지 확인하는 가장 쉬운 방법은 무엇입니까?C# 바이트 배열에 중복이 없음을 확인하십시오.
0
A
답변
2
256 개의 부울 배열을 만들고 바이트 배열을 하나씩 반복합니다.
발생할 때 배열의 각 값을 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;
}
+0
+1하지만 if (map [b] == true)는 if (map [b])가되어야합니다. 개인적인 선호도. – Kleinux
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
당신은 또는 동일한 값이 두 번 발생하면 당신이 할 수있는 등 예외 무엇을 던져하지 않는 경우 :
var set = new HashSet<byte>(byteArray);
당신이 경우 순서대로 됨으로써 당신이 정렬 LINQ 확장 메서드를 호출 할 수 있습니다 분류 의미를 위에서 설정 한 개체에
중복되지 않는다고 할 때 당신은 무엇을 의미합니까? 당신은 같은 바이트 값이 배열에 tiwce로 표시되지 않을까요? 그리고 순서에 따라 정렬 된 것을 의미합니까? –
순서는? 네가 보낸 명령은? TCP (스택 하단)에는 오류 검색 시스템이 내장되어있어 (제 3자가 고의적으로 조작 한 경우를 제외하고) 보내는 데이터가 대상에 도착할 수 있도록합니다. http://en.wikipedia.org/wiki/ Transmission_Control_Protocol # Error_detection –