У меня есть «огромный» объем данных, который может варьироваться от 50 до 100 мегабайт. Я читаю эти данные в виде массива байтов, используя файловый стример.
Дело в том, что я хочу преобразовать все последовательные 2 байта в целое число. Как я это делаю, я перебираю массив байтов с размером шага два, а затем использую BitConvert для преобразования:
_data[i] = BitConverter.ToInt16(soundData[i : i + 2], 0) // Convert 2 bytes into an int and store at i
Таким образом, каждые два байта превращаются в Int16. Однако проблема в том, что это слишком медленно, так как для файла размером около 50 мегабайт это может занять 20 секунд!
Есть ли общий способ сделать это мгновенно, вместо того, чтобы вызывать эту функцию для каждых 2 байтов моего массива данных, чтобы она не была такой медленной? Желательно «безопасным» способом, чтобы не было небезопасного кода.