Was ist der einfachste Weg, um sicherzustellen, dass es keine Duplikate gibt und ein Byte-Array in Ordnung ist, sagen wir von einer Netzwerkverbindung?C# Sicherstellen, dass keine Duplikate im Byte-Array
Antwort
Erstellen Sie ein Array von 256 boolean und durchlaufen Sie nacheinander die Byte-Array.
Setzen Sie jeden Wert im Array auf True, wenn Sie darauf stoßen. wenn Sie einen bereits wahren Wert stoßen dann das Byte-Array in einem ungültigen Format ist
ich nicht ganz folgen, was Sie mit dem „Byte-Array ist, um“ Bit
könnten Sie auch einen BitArray verwenden
Beispiel:
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;
}
+ 1, aber das if (map [b] == true) sollte eigentlich nur if sein (map [b]). Persönliche Präferenz schätze ich. – Kleinux
Wenn Sie auf .NET 3.5 sind, ist es ziemlich einfach, einzigartige Gegenstände zu bekommen ...
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
Können Sie erklären, was Sie mit "In Ordnung" meinen?
, wenn Sie, was nicht eine Ausnahme zu werfen oder so, wenn der gleiche Wert angetroffen wird zweimal könnten Sie tun:
var set = new HashSet<byte>(byteArray);
, wenn Sie nach sortiert, um meine wobei Sie die LINQ-Extension-Methode aufrufen sortieren auf das Objekt von oben gesetzt
- 1. , wie man sicherstellen, dass es in C#
- 2. Keine Duplikate in SQL-Abfrage
- 3. Sicherstellen, dass Ausnahmen immer behoben werden
- 4. Sicherstellen, dass keine zwei zufälligen Zeilen gleich sind.
- 5. C# ByteArray zu Image
- 6. Wie kann ich sicherstellen, dass C# 's Process.Start Umgebungsvariablen erweitert?
- 7. Sicherstellen, dass define beim Neukompilieren verarbeitet wird
- 8. set() lösche keine Duplikate
- 9. DISTINCT entfernt keine Duplikate
- 10. Sicherstellen, dass die Basismethode in C# aufgerufen wird
- 11. C#: Sicherstellen, dass DateTime.Now eine GMT + 1 Zeit zurückgibt
- 12. Syncsort Summe Felder = Keine entfernt keine Duplikate
- 13. Linux zu Windows C++ Bytearray
- 14. C#: Bytearray in XML speichern
- 15. Sicherstellen, dass Programm in einem Terminal ist
- 16. Finding Duplikate, die keine Duplikate in einer MYSQL Tabelle sind
- 17. Sicherstellen, dass JavaScript nicht manipuliert wurde
- 18. Sicherstellen, dass die SharedPreference korrekt zurückgeschrieben wird
- 19. Sicherstellen, dass mindestens ein Kontrollkästchen aktiviert ist
- 20. Sicherstellen, dass Dateien sofort geschlossen werden
- 21. Sicherstellen, dass die Impala-Abfrage materialisiert wird
- 22. Warum ignoriert THashedStringList keine Duplikate?
- 23. C: Wie lösche ich benachbarte Duplikate im 1D-Array?
- 24. Wie kann ich sicherstellen, dass alle meine Python-Code "kompiliert"?
- 25. Lesen einer C/C++ - Datenstruktur in C# aus einem Bytearray
- 26. PHP - sicherstellen, dass bestimmte Werte in mehrdimensionalen Array sind einzigartig
- 27. Sollte ich sicherstellen, dass Zeichen in Benutzereingaben ASCII folgen?
- 28. Ignoriere Duplikate im Regex-Muster
- 29. sicherstellen, dass keine Anforderungen sind durch GET-Methode in der Anwendung
- 30. C# JSON Deserialisierung (Liste, dass keine Liste)
Was meinst du, wenn du nicht Duplikate sagst? Sie nicht, was der gleiche Byte-Wert, um Tiwce im Array zu erscheinen? und indem Sie in Ordnung sind, meinen Sie, sortiert? –
Welcher Auftrag? Die Reihenfolge, dass Sie es gesendet haben? TCP (niedriger auf dem Stack) verfügt über ein eingebautes Fehlererkennungssystem, das dafür sorgt, dass die von Ihnen gesendeten Daten (sofern nicht absichtlich von Dritten manipuliert) am Ziel ankommen: http://en.wikipedia.org/wiki/ Transmission_Control_Protocol # Error_detection –