Ho bisogno di analizzare i byte da un file in modo tale che prendo solo i dati dopo che una determinata sequenza di byte è stata identificata. Ad esempio, se la sequenza è semplicemente 0xFF (un byte), allora posso utilizzare LINQ sulla raccolta:Come individuare una sequenza di valori (in particolare, byte) all'interno di una raccolta più grande in .NET
byte[] allBytes = new byte[] {0x00, 0xFF, 0x01};
var importantBytes = allBytes.SkipWhile(byte b => b != 0xFF);
// importantBytes = {0xFF, 0x01}
ma c'è un modo elegante per rilevare una sequenza multi-byte - esempio 0xFF, 0xFF - specialmente uno che esegue il backtrack nel caso in cui inizi a ottenere una corrispondenza falsamente positiva?
Non ti devi preoccuparti di ciò che .NET potrebbe supporre sulla codifica e tali che darebbe risultati errati? – thelsdj
Credo che finché cercherete un'esatta sequenza di byte, la codifica non avrà davvero importanza (purché sia la sorgente che la sequenza di ricerca siano nella stessa codifica). È possibile utilizzare la classe ASCIIEncoding per consentire la conversione avanti e indietro. – MikeP