如何在C#中将IEnumerable转换为List并将List转换回IEnumerable?

IEnumerable是定义单个方法的接口,该方法GetEnumerator()返回IEnumerator接口。它是所有可以枚举的非通用集合的基本接口。

这适用于对实现IEnumerable可以与foreach语句一起使用的集合的只读访问。

列表类表示可以通过索引访问的对象列表。它位于System.Collection.Generic命名空间下。

列表类可用于创建不同类型的集合,例如整数,字符串等。列表类还提供了搜索,排序和操作列表的方法。

例子1

static void Main(string[] args) {
   List list = new List();
   IEnumerable enumerable = Enumerable.Range(1, 5);

   foreach (var item in enumerable) {
      list.Add(item);
   }
   foreach (var item in list) {
      Console.WriteLine(item);
   }
   Console.ReadLine();
}

输出结果

1
2
3
4
5

例子2

将List转换为IEnumerable

static void Main(string[] args) {
   List list = new List();
   IEnumerable enumerable = Enumerable.Range(1, 5);

   foreach (var item in enumerable) {
      list.Add(item);
   }
   foreach (var item in list) {
      Console.WriteLine(item);
   }
   IEnumerable enumerableAfterConversion= list.AsEnumerable();
   foreach (var item in enumerableAfterConversion) {
      Console.WriteLine(item);
   }
   Console.ReadLine();
}

输出结果

1
2
3
4
5
1
2
3
4
5