在 C# 中將 IEnumerable 轉換為列表

Abdullahi Salawudeen 2023年1月30日 2022年4月20日
  1. 在 C# 中使用 ToList() 將資料從 IEnumerable 轉換為列表
  2. 在 C# 中使用 ToList() 將資料從陣列轉換為列表
  3. 在 C# 中使用 ToArray() 將資料從列表轉換為陣列
  4. 在 C# 中使用 AsEnumerable() 將資料從 List 轉換為 IEnumerable
在 C# 中將 IEnumerable 轉換為列表

本文將說明將資料從 IEnumerable 轉換為 C# 中的列表。

在 C# 中使用 ToList() 將資料從 IEnumerable 轉換為列表

IEnumerable 是一個包含在 System.Collections.Generic 名稱空間中的介面。像所有其他介面一樣,它公開了一個方法。

此案例公開了 enumerator 方法,該方法支援迭代或迴圈遍歷泛型和非泛型列表,包括 LINQ 查詢和陣列。

IEnumerable 僅包含返回 IEnumerator 物件的 GetEnumerator 方法。

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

IEnumerable 介面返回的值是隻讀的。這意味著操作僅限於這些資料。

C# 中的 ToList() 方法是操作這些資料的替代方法。C# 列表中的元素可以新增、刪除、排序和重新排列。

與 IEnumerable 值相比,可以對列表執行的操作太多了。

C# List 類表示可以通過索引訪問的強型別物件的集合。ToList() 函式或方法位於 System.Linq 名稱空間(語言整合查詢)中。

LINQ 中的 ToList 運算子從給定源獲取元素並返回一個新列表。輸入將被轉換為型別列表。

ToList() 方法返回字串例項的列表。ToList() 函式可以在陣列引用或 IEnumerable 值上呼叫,反之亦然。

可通過此參考進行進一步討論。

可以按如下方式訪問或操作列表元素:

// 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);

必須匯入名稱空間才能使用 ToList 函式,如下所示:

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

下面是 ToList() 方法的語法。

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

下面是在 C# 中將 IEnumerable 轉換為列表的示例程式碼。

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);
            }
        }
    }
}

輸出:

1
2
3
4
5
6
7
8
9
10

在 C# 中使用 ToList() 將資料從陣列轉換為列表

下面是在 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);
            }
        }
    }
}

輸出:

Nigeria
Ghana
Egypt
Liberia
The Gambia
Morocco
Senegal

在 C# 中使用 ToArray() 將資料從列表轉換為陣列

下面是在 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);
            }
        }
    }
}

輸出:

1
2
3
4
5
6
7
8
9
10

在 C# 中使用 AsEnumerable() 將資料從 List 轉換為 IEnumerable

下面是將 IEnumerable 轉換為列表並返回 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);
            }
        }
    }

}

輸出:

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

相關文章 - Csharp List

相關文章 - Csharp IEnumerable