如何在C#中将Array
转换为List<object>
?
答案 0 :(得分:94)
List<object> list = myArray.Cast<Object>().ToList();
如果数组元素的类型是引用类型,则可以省略.Cast<object>()
,因为C#4添加了接口协方差,即IEnumerable<SomeClass>
可以被视为IEnumerable<object>
}。
List<object> list = myArray.ToList<object>();
答案 1 :(得分:36)
使用构造函数:new List<object>(myArray)
答案 2 :(得分:12)
List<object>.AddRange(object[])
应该做到这一点。它将避免各种无用的内存分配。
你也可以使用Linq,有点像这样:object[].Cast<object>().ToList()
答案 3 :(得分:8)
列表&lt;&gt;构造函数可以接受任何实现IEnumerable的东西,因此......
object[] testArray = new object[] { "blah", "blah2" };
List<object> testList = new List<object>(testArray);
答案 4 :(得分:5)
private List<object> ConvertArrayToList(object[] array)
{
List<object> list = new List<object>();
foreach(object obj in array)
list.add(obj);
return list;
}
答案 5 :(得分:3)
如果数组项和列表项相同
List<object> list=myArray.ToList();
答案 6 :(得分:2)
每个人都说的都是正确的,
int[] aArray = {1,2,3};
List<int> list = aArray.OfType<int> ().ToList();
会将aArray变成列表,列表。然而,许多评论中遗漏的最大问题是你需要在课程顶部使用这两个使用语句
using System.Collections.Generic;
using System.Linq;
我希望这有帮助!
答案 7 :(得分:1)
您也可以直接使用数组初始化列表:
List<int> mylist= new List<int>(new int[]{6, 1, -5, 4, -2, -3, 9});
答案 8 :(得分:1)
您可以尝试一下,
using System.Linq;
string[] arrString = { "A", "B", "C"};
List<string> listofString = arrString.OfType<string>().ToList();
希望,这段代码对您有所帮助。
答案 9 :(得分:0)
另一种方式
List<YourClass> list = (arrayList.ToArray() as YourClass[]).ToList();
答案 10 :(得分:0)
这允许您发送一个对象:
private List<object> ConvertArrayToList(dynamic array)
答案 11 :(得分:0)
这是我的版本:
NameMatches <- Names[pmatch(
ID$IDTag,
Names$Name,
duplicates.ok = TRUE
),]