.NET将简单数组转换为List Generics

Man*_*nha 12 .net c# arrays generics clr

这个问题看起来似乎微不足道,乍一看也很愚蠢,但它远不止于此.

我有一个任何类型的数组T(T[]),我想将其转换为List generic(List<T>).除了创建一个通用列表,遍历整个数组并在List中添加元素之外还有其他方法吗?

现状:

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>();
foreach(string s in strList)
{
    listOfStr.Add(s);
}
Run Code Online (Sandbox Code Playgroud)

我理想的情况:

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = strList.ToList<string>();
Run Code Online (Sandbox Code Playgroud)

要么:

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>(strList);
Run Code Online (Sandbox Code Playgroud)

我建议最后两个方法名称,因为我认为编译器或CLR如果它想要内置,可以对整个操作执行一些优化.

PS:我不是在谈论Array或者ArrayList类型

Fad*_*man 27

如果我正确理解您的问题,您所拥有的代码段之一将起作用.在C#中,字符串需要用双引号括起来,而不是单引号.

string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>(strList);
Run Code Online (Sandbox Code Playgroud)


小智 10

如果您参考System.Linq,您可以输入:

string[] strList = {'foo','bar','meh'}; 
List<string> listOfStr = strList.ToList(); 
Run Code Online (Sandbox Code Playgroud)

完全像你想要的.

第二种语法也应该有效.