Convertir IEnumerable en Lista en C#

Abdullahi Salawudeen 12 octubre 2023
  1. Utilice ToList() para convertir datos de IEnumerable en una lista en C#
  2. Utilice ToList() para convertir datos de matriz a lista en C#
  3. Utilice ToArray() para convertir datos de lista a array en C#
  4. Utilice AsEnumerable() para convertir datos de la lista en IEnumerable en C#
Convertir IEnumerable en Lista en C#

Este artículo ilustrará la conversión de datos de IEnumerable a una lista en C#.

Utilice ToList() para convertir datos de IEnumerable en una lista en C#

IEnumerable es una interfaz contenida en el espacio de nombres System.Collections.Generic. Como cualquier otra interfaz, expone un método.

Este caso expone el método enumerator, que admite la iteración o el bucle a través de listas genéricas y no genéricas, incluidas las consultas LINQ y Arrays.

IEnumerable contiene solo el método GetEnumerator, que devuelve un objeto IEnumerator.

public interface IEnumerable<out T> : System.Collections.IEnumerable

Los valores devueltos por la interfaz IEnumerable son de solo lectura. Esto implica que la manipulación se limita a estos datos.

El método ToList() en C# es un método alternativo para manipular estos datos. Los elementos de una lista en C# se pueden agregar, quitar, ordenar y reorganizar.

Hay tantas operaciones que se pueden realizar en una lista en comparación con los valores de IEnumerable.

La clase List de C# representa una colección de objetos fuertemente tipados a los que se puede acceder mediante index. La función o método ToList() está en el espacio de nombres System.Linq (Language-Integrate Query).

El operador ToList en LINQ toma el elemento de la fuente dada y devuelve una nueva lista. La entrada se convertiría en una lista de tipos.

El método ToList() devuelve una lista de instancias de cadenas. La función ToList() se puede invocar en una referencia de matriz o valores IEnumerable y viceversa.

Más discusión está disponible a través de este referencia.

Se puede acceder a los elementos de la lista o manipularlos de la siguiente manera:

// an array of 4 strings
string[] animals = { "Cow", "Camel", "Elephant" };

// creating a new instance of a list
List<string> animalsList = new List<string>();

// use AddRange to add elements
animalsList.AddRange(animals);

// declaring a list and passing array elements into the list
List<string> animalsList = new List<string>(animals);

// Adding an element to the collection
animalsList.Add("Goat");
Console.WriteLine(animalsList[2]);  // Output Elephant, Accessing elements of a list

// Collection of new animals
string[] newAnimals = { "Sheep", "Bull", "Camel" };

// Insert array at position 3
animalsList.InsertRange(3, newAnimals);

// delete 2 elements at starting with element at position 3
animalsList.RemoveRange(3, 2);

El espacio de nombres debe importarse para usar la función ToList de la siguiente manera:

using System.Collections.Generic;
using System.Linq;

A continuación se muestra la sintaxis del método ToList().

List<string> result = countries.ToList();

A continuación se muestra un código de ejemplo para convertir IEnumerable en una lista en C#.

using System;
using System.Collections.Generic;
using System.Linq;

namespace TestDomain {
  class Program {
    public static void Main(String[] args) {
      IEnumerable<int> testValues = from value in Enumerable.Range(1, 10) select value;
      List<int> result = testValues.ToList();
      foreach (int a in result) {
        Console.WriteLine(a);
      }
    }
  }
}

Producción :

1
2
3
4
5
6
7
8
9
10

Utilice ToList() para convertir datos de matriz a lista en C#

A continuación se muestra un código de ejemplo para convertir un array en una lista en C#.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayToListApp {
  class Program {
    static void Main(string[] args) {
      // create an array of African countries of type string containing the collection of data
      string[] countries = { "Nigeria",    "Ghana",   "Egypt",  "Liberia",
                             "The Gambia", "Morocco", "Senegal" };
      // countries.ToList() convert the data collection into the list.
      List<string> result = countries.ToList();
      // foreach loop is used to print the countries
      foreach (string s in result) {
        Console.WriteLine(s);
      }
    }
  }
}

Producción :

Nigeria
Ghana
Egypt
Liberia
The Gambia
Morocco
Senegal

Utilice ToArray() para convertir datos de lista a array en C#

A continuación se muestra un código de ejemplo para convertir de lista a array en C#.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ListToArrayApp {
  class Program {
    static void Main(string[] args) {
      // create an array of African countries of type string containing the collection of data
      IEnumerable<int> testValues = from value in Enumerable.Range(1, 10) select value;

      // countries.ToList() convert the data collection into the list.
      List<int> result = testValues.ToList();
      int[] array = result.ToArray();  // convert string to array.
      // foreach loop is used to print the countries
      foreach (int i in array) {
        Console.WriteLine(i);
      }
    }
  }
}

Producción :

1
2
3
4
5
6
7
8
9
10

Utilice AsEnumerable() para convertir datos de la lista en IEnumerable en C#

A continuación se muestra un código de ejemplo para convertir IEnumerable en una lista y volver a IEnumerable.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ListToArrayApp {
  class Program {
    static void Main(string[] args) {
      List<int> list = new List<int>();
      IEnumerable enumerable = Enumerable.Range(1, 5);

      foreach (int item in enumerable) {
        list.Add(item);
      }
      Console.WriteLine("Output as List");
      foreach (var item in list) {
        Console.WriteLine(item);
      }
      Console.WriteLine("Output as Enumerable");
      // using the AsEnumerable to	convert list back to Enumerable
      IEnumerable resultAsEnumerable = list.AsEnumerable();
      foreach (var item in resultAsEnumerable) {
        Console.WriteLine(item);
      }
    }
  }

}

Producción :

Output as List
1
2
3
4
5
Output as Enumerable
1
2
3
4
5
Abdullahi Salawudeen avatar Abdullahi Salawudeen avatar

Abdullahi is a full-stack developer and technical writer with over 5 years of experience designing and implementing enterprise applications. He loves taking on new challenges and believes conceptual programming theories should be implemented in reality.

LinkedIn GitHub

Artículo relacionado - Csharp List

Artículo relacionado - Csharp IEnumerable