7 эффективных способов преобразования C# IEnumerable в список с примерами кода

В C# интерфейс IEnumerable широко используется для перебора коллекций. Однако существуют сценарии, в которых вам может потребоваться преобразовать IEnumerable в список, чтобы воспользоваться преимуществами функций, специфичных для списка. В этой статье блога мы рассмотрим семь эффективных методов преобразования IEnumerable в список на C#, сопровождая их соответствующими примерами кода.

Метод 1: использование метода расширения ToList()

IEnumerable<int> numbers = GetNumbers();
List<int> numberList = numbers.ToList();

Метод 2: использование конструктора List

IEnumerable<int> numbers = GetNumbers();
List<int> numberList = new List<int>(numbers);

Метод 3: использование метода LINQ ToList()

IEnumerable<int> numbers = GetNumbers();
List<int> numberList = numbers.ToList();

Метод 4: использование методов LINQ Cast() и ToList()

IEnumerable<object> objects = GetObjects();
List<string> stringList = objects.Cast<string>().ToList();

Метод 5: использование метода AddRange()

IEnumerable<int> numbers = GetNumbers();
List<int> numberList = new List<int>();
numberList.AddRange(numbers);

Метод 6: использование цикла for

IEnumerable<int> numbers = GetNumbers();
List<int> numberList = new List<int>();
foreach (int number in numbers)
{
    numberList.Add(number);
}

Метод 7: использование метода Enumerable.ToList()

IEnumerable<int> numbers = GetNumbers();
List<int> numberList = Enumerable.ToList(numbers);

В этой статье мы рассмотрели семь различных методов преобразования IEnumerable в список на C#. Независимо от того, предпочитаете ли вы использовать методы расширения, конструкторы, LINQ или традиционные циклы for, эти методы обеспечивают гибкость и удобство в зависимости от ваших конкретных требований. Преобразование IEnumerable в список позволяет использовать обширные функциональные возможности, предоставляемые классом List, такие как произвольный доступ, вставка и удаление. Эффективно применяя эти методы, вы можете повысить производительность кодирования и оптимизировать производительность приложений C#.