这件事很简单,所以请给我一个参考,如果有一个或答案。我有一个数组不同的不可重复的对象,例如
object[] data { Cat, Dog, Bird };
所以我需要将数组中的每个对象插入到对应的对象中,类似于:
Cat cat = data.Select(x => (Cat)x).FirstOrDefault();
Dog dog = data.Select(x=>(Dog)x).FirstOrDefault();
.
.
.
我试过:
using System.Linq;
Cat cat = data.Select(x => (Cat)x).FirstOrDefault();
Dog dog = data.Select(x=>(Dog)x).FirstOrDefault();
还有这个
Cat cat = (Cat)data.Select(x => x).FirstOrDefault();
但我只得到了
System.InvalidCastException: 'Specified cast is not valid.'
2条答案
按热度按时间1tu0hz3e1#
这将帮助您:
了解Object.GetType Method和Type
正如@Klaus的注解所指出的,它不适用于子类,在这种情况下,您可以使用OfType
njthzxwz2#
通过使用@FortyTwo的答案,您还可以创建一个泛型扩展方法来从对象数组中获取特定类型的第一个对象。
结果: