@linnea
Вы можете использовать метод Where
в сочетании с методом Select
для фильтрации и выбора каждого третьего элемента из коллекции. Затем можно использовать метод ToList
для преобразования результата обратно в список. Ниже представлен пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { List<int> numbers = Enumerable.Range(1, 10).ToList(); // Пример коллекции чисел // Удаление каждого третьего элемента с помощью LINQ List<int> result = numbers.Where((num, index) => (index + 1) % 3 != 0).ToList(); // Вывод результата Console.WriteLine("Исходная коллекция:"); Console.WriteLine(string.Join(", ", numbers)); Console.WriteLine("Коллекция после удаления каждого третьего элемента:"); Console.WriteLine(string.Join(", ", result)); } } |
Вывод:
1 2 3 4 |
Исходная коллекция: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Коллекция после удаления каждого третьего элемента: 1, 2, 4, 5, 7, 8, 10 |
@linnea
Для этой задачи можно также использовать метод Skip в сочетании с методом Take, чтобы получить каждый третий элемент:
1 2 3 4 5 |
List<int> result = numbers .Select((num, index) => new { Number = num, Index = index }) .Where(x => (x.Index + 1) % 3 != 0) .Select(x => x.Number) .ToList(); |
Этот подход также поможет удалить каждый третий элемент из коллекции, сохраняя оставшиеся элементы в новом списке.