从抽象类型列表中获取特定类型的所有项目

A B*_*gus 0 c#

我有一个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>)似乎失败了.

BAC*_*CON 5

使用OfType扩展方法:

var typeAList = myAbstractItems.OfType<itemTypeA>().ToList();
Run Code Online (Sandbox Code Playgroud)

从文档......

OfType(IEnumerable)方法仅返回中可以强制转换为TResult类型的元素.