我有一个List<>包含不同类型对象的抽象对象.我试图获取某种类型的所有项目并将这些项目设置为自己的项目List<>.
这不起作用 -
//myAbstractItems is a List<myAbstractItem>
//typeAList inherents from myAbstractItem
var typeAList = ((List<itemTypeA>)myAbstractItems.Where(i => i.GetType() == typeof(itemTypeA)).ToList());
Run Code Online (Sandbox Code Playgroud)
铸造(List<itemTypeA>)似乎失败了.
使用OfType扩展方法:
var typeAList = myAbstractItems.OfType<itemTypeA>().ToList();
Run Code Online (Sandbox Code Playgroud)
从文档......
OfType(IEnumerable)方法仅返回源中可以强制转换为TResult类型的元素.