Re: Быстро IEnumerable в массив
От: Аноним  
Дата: 12.05.13 15:44
Оценка:
Здравствуйте, Glas, Вы писали:

G>Подскажи самый быстрый способ преобразования IEnumerable в массив.


G>На входе подается массив длинной несколько сотен миллионов значений. Нужно очищать этот массив от мусора в зависимости от текущей итерации. И есть библиотека, которая знает только о массивах.

G>Самое быстрое, что я смог придумать выглядит вот так.
G>
G>ushort[] curBuffer = new ushort[size];//size - размер массива
G>for (int k = 0; k < size; k++)
G>     curBuffer[k] = (ushort)(_buffer[k] == (iterationNumber + 1) ? 1 : 0);//_buffer - входной массив
G>

G>Это оказалось на пару секунд быстрей, чем метод ToArray().
G>Может, еще быстрее как-то можно?

G>Для тех у кого возникнут вопросы, что на входе и выходе:

G>Вход: 1 1 1 0 0 0 2 2 2 ... N N N
G>На выходе на первой итерации: 1 1 1 0 0 0 0 0 0 ... 0 0 0
G>На выходе на второй итерации: 0 0 0 0 0 0 2 2 2 ... 0 0 0 и тдъ

Откуда сотня миллионов такая идет ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.