@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();
|
Этот подход также поможет удалить каждый третий элемент из коллекции, сохраняя оставшиеся элементы в новом списке.