Herman<T>.Instance Ответов: 1

Linq: получить часть результирующего набора на основе интервала


Привет Ребята,

Я пишу статью ASP.NET веб-сайт, который показывает глобальные координаты/геолокацию на карте google.
Ниже этой карты я хочу показать график, который отображает некоторые значения, относящиеся к этой геолокации. Поскольку он обрабатывает сотни тысяч (это полилиния GMAP с дополнительными данными. Что дополнительные данные должны отображаться в виде графика) точек, для которых практически невозможно создать график (ограничение 32000 записей).
Как я могу создать результирующий набор, содержащий любую N-ю строку из полной таблицы данных c#
Может ли запрос linq помочь мне получить максимум 10 000 строк из исходных 150 000 строк? Таким образом, интервал пропуска в 15 строк должен сделать свое дело.
В результирующем наборе строки 1, 16, 31 ... и так должны быть установлены.

Что я уже пробовал:

Я погуглил, чтобы посмотреть, возможно ли это, но skip in linq только перемещает указатель на заданную строку, а оставшаяся часть этого набора затем возвращается (150 000-15 не хочу, я хочу)

1 Ответов

Рейтинг:
6

Midi_Mick

Вы можете использовать IEnumerable< T>.Где (Func<T, int, bool>) расширение:

results = rows.Where((r,i)=>i % 15 == 0);


Midi_Mick

или, для более быстрого результата, каждый 16-й элемент может быть выполнен с помощью побитового оператора, а не оператора модуля, т. е. (i & 15) == 0

Herman&lt;T&gt;.Instance

ты-легенда!

Maciej Los

5ед!