我该如何在C#中将一个
Array
转换为List<object>
?Array
转换为List<object>
?List<object> list = myArray.Cast<Object>().ToList();
如果数组元素的类型是引用类型,那么由于C#4添加了接口协变,你可以省略.Cast<object>()
,例如可以将IEnumerable<SomeClass>
视为IEnumerable<object>
。
List<object> list = myArray.ToList<object>();
List<object> list = myArray.ToList<object>();
。 - samir105new List<object>(myArray)
.Contains(userName)
)。非常适合将大量逻辑压缩成单行if语句 :)。 - PatrickList<object>.AddRange(object[])
应该能够解决问题。这样可以避免各种无用的内存分配。
你也可以使用Linq,类似于这样:object[].Cast<object>().ToList()
List<T>
- 你可以使用 Clear()
方法重用现有的列表。 - EngineerList<> 的构造函数可以接受任何实现了 IEnumerable 接口的对象,因此...
object[] testArray = new object[] { "blah", "blah2" };
List<object> testList = new List<object>(testArray);
private List<object> ConvertArrayToList(object[] array)
{
List<object> list = new List<object>();
foreach(object obj in array)
list.add(obj);
return list;
}
List<object> list=myArray.ToList();
using System.Linq;
string[] arrString = { "A", "B", "C"};
List<string> listofString = arrString.OfType<string>().ToList();
大家所说的一切都是正确的,因此,
int[] aArray = {1,2,3};
List<int> list = aArray.OfType<int> ().ToList();
这将把aArray转换为列表list。然而,很多评论中最重要的缺失是你需要在类的顶部添加这两个using语句。
using System.Collections.Generic;
using System.Linq;
您也可以直接使用数组初始化列表:
List<int> mylist= new List<int>(new int[]{6, 1, -5, 4, -2, -3, 9});
这是我的版本:
List<object> list = new List<object>(new object[]{ "test", 0, "hello", 1, "world" });
foreach(var x in list)
{
Console.WriteLine("x: {0}", x);
}