我有一个对象数组,如:
object[]
数组的所有元素如果与一个类型兼容,我将其称为
MyClass
如何将对象[]转换为List ?
你可以使用LINQ的Cast
和OfType
方法,这取决于你想要发生什么,如果你的数组包含不是类型的MyClass
元素。
如果想在遇到无效元素时抛出异常,请使用:
var myList = myArray.Cast<MyClass>().ToList();
如果您想静默忽略所有非MyClass
的项,使用:
var myList = myArray.OfType<MyClass>().ToList();
您可以使用Linq来实现这一点:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
object[] l = new object[3];
l[0] = new MyClass();
l[1] = new MyClass();
l[2] = new NotMyClass();
var res = l.Where(e => e is MyClass).Cast<MyClass>();
foreach(var e in res){
Console.WriteLine(e.ToString());
}
}
}
public class MyClass{
}
public class NotMyClass{
}