Я немного удивлен, обнаружив результаты следующего кода, где я просто хочу удалить все 3 из последовательности целых чисел:
var sequence = new [] { 1, 1, 2, 3 };
var result = sequence.SkipWhile(i => i == 3); // Oh noes! Returns { 1, 1, 2, 3 }
Почему не пропущено 3?
Моей следующей мыслью было: «Хорошо, оператор Except поможет»:
var sequence = new [] { 1, 1, 2, 3 };
var result = sequence.Except(i => i == 3); // Oh noes! Returns { 1, 2 }
В итоге
- Кроме удаляет 3, но также
удаляет неделимые элементы Grr.
- SkipWhile не пропускает последний
элемент, даже если он соответствует
состояние. Grr.
Может кто-нибудь объяснить, почему SkipWhile не пропускает последний элемент? И кто-нибудь может подсказать, какой оператор LINQ я могу использовать для удаления «3» из приведенной выше последовательности?