|
|
|
|
|
這篇文章將討論如何在 C# 中將數(shù)組Array轉(zhuǎn)換為List。
1、使用Enumerable.ToList()方法
最簡單的解決方案是從System.Linq
命名空間調(diào)用Enumerable.ToList()
方法,該方法從IEnumerable<T>
創(chuàng)建List<T>
,它返回一個包含輸??入序列元素的List<T>
。
using System;
using System.Collections.Generic;
using System.Linq;
public class Example
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = array.ToList();
// List<int> list = array.OfType<int>().ToList();
// List<int> list = array.Cast<int>().ToList();
Console.WriteLine(String.Join(",", list));
}
}
/*
輸出: 1,2,3,4,5
*/
2、使用列表構(gòu)造器
我們還可以使用List<T>
的構(gòu)造函數(shù),它接受IEnumerable<T>
作為一個參數(shù)并初始化List<T>
類的一個新實例,List<T>
類包含從指定集合復(fù)制的元素。
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = new List<int>(array);
Console.WriteLine(String.Join(",", list));
}
}
/*
輸出: 1,2,3,4,5
*/
3、使用List.AddRange()方法
最后,我們可以調(diào)用AddRange()
方法,該方法將指定的集合元素添加到 List
的末尾。
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = new List<int>();
list.AddRange(array);
Console.WriteLine(String.Join(",", list));
}
}
/*
輸出: 1,2,3,4,5
*/
在上面的代碼示例中,我們沒有將 Array
轉(zhuǎn)換為 List
,而是使用 List
上的.AddRange()
方法將 Array
的元素附加到 List
。
我們創(chuàng)建一個新List
,并使用 IList
上的 .AddRange
方法將集合添加到現(xiàn)有List
中。
正如我們所知,Array
實現(xiàn)了 ICollection
,我們可以將 Array
添加到 AddRange
方法并將項目附加到現(xiàn)有 List
。
如何將List轉(zhuǎn)換為Array
System.Collections.Generic
命名空間中的List<T>
類提供方法ToArray()
,可用于將 List
轉(zhuǎn)換為 Array
。
public T[] ToArray();
此方法復(fù)制 List
的項目到一個新數(shù)組并將該數(shù)組返回給調(diào)用者。
Array.Copy()
方法將列表元素復(fù)制到新數(shù)組。O(n)
,其中n
是元素的數(shù)量。在下面的代碼示例中,我們創(chuàng)建了一個整數(shù)列表,并使用ToArray()
方法將其轉(zhuǎn)換為整數(shù)數(shù)組。我們已經(jīng)使用Array.ForEach()
方法打印了數(shù)組內(nèi)容。
同樣的操作也適用于字符串列表。
該程序打印以下輸出。
1
2
3
4
5
January
February
March
April
代碼
using System;
using System.Collections.Generic;
namespace Hello
{
class ToArrayTest
{
static void Main(string[] args)
{
var numList = new List<int> { 1, 2, 3, 4, 5 };
int[] numArray = numList.ToArray();
Array.ForEach(numArray, Console.WriteLine);
var monthList = new List<string> { "January", "February", "March", "April" };
string[] monthArray = monthList.ToArray();
Array.ForEach(monthArray, Console.WriteLine);
}
}
}
總結(jié)
這就是關(guān)于在 C# 中將數(shù)組Array
轉(zhuǎn)換為List
的3種方法,第一種方法比較簡單,而其他方法也同樣可以達(dá)到目的。此外,也介紹了List
轉(zhuǎn)為Array
的方法。
相關(guān)文章