Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Вопрос про LINQ.Where(индекс)

Приветствую форумчане 👋. Я осваиваю линк. Связи с чем возник вопрос к методу, а именно к индексу в методе. Первый возвращает ожидаемый для меня результат. Второй нет.

int[] a1 = { 2, 2, 2, 2, 2, 2, 2 };
int[] a2 = { 3, 3, 3, 3, 3};

var res1 = a1.Where((el, index) => index % 3 != 1).ToArray();
var res2 = a2.Where((el, index) => index % 3 != 1).ToArray();

Это условие вроде должно выбрать все элементы по индексу, которые не делятся на 3 без остатка. Что ожидаемо для меня, составляет в первом случае 5 элементов. Но не пойму почему во втором 3 получается. Вроде по условию 4 должно быть?

Всё верно работает. index начинается с 0. Тоесть в 1 случае от 0 до 6 и это 5 двоек.
Во 2 случае от 0 до 4 и это 3 троек.
[MNotice]У нас здороваются[/MNotice]