将对象数组转换为 class 的列表
Convert an array of object to a list of a class
我有一组对象,例如:
object[]
数组的所有元素如果与我将调用的类型兼容
MyClass
如何将此对象[]转换为列表?
您可以使用 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{
}
您可以使用 LINQ 的 Cast
和 OfType
方法,具体取决于您在数组包含 非 类型的元素时希望发生的情况MyClass
.
如果你想在遇到无效元素时抛出异常,使用:
var myList = myArray.Cast<MyClass>().ToList();
如果您想静默忽略所有不是 MyClass
的项目,请使用:
var myList = myArray.OfType<MyClass>().ToList();
我有一组对象,例如:
object[]
数组的所有元素如果与我将调用的类型兼容
MyClass
如何将此对象[]转换为列表?
您可以使用 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{
}
您可以使用 LINQ 的 Cast
和 OfType
方法,具体取决于您在数组包含 非 类型的元素时希望发生的情况MyClass
.
如果你想在遇到无效元素时抛出异常,使用:
var myList = myArray.Cast<MyClass>().ToList();
如果您想静默忽略所有不是 MyClass
的项目,请使用:
var myList = myArray.OfType<MyClass>().ToList();