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

标签 c#

我有一个 List<>包含不同类型对象的抽象对象。 我正在尝试获取某种类型的所有项目并将这些项目设置为它们自己的 List<> .

这是行不通的-

//myAbstractItems is a List<myAbstractItem>
//typeAList inherents from myAbstractItem


var typeAList = ((List<itemTypeA>)myAbstractItems.Where(i => i.GetType() == typeof(itemTypeA)).ToList());

类型转换(List<itemTypeA>)似乎失败了。

最佳答案

使用 OfType extension method :

var typeAList = myAbstractItems.OfType<itemTypeA>().ToList();

从文档...

The OfType(IEnumerable) method returns only those elements in source that can be cast to type TResult.

关于c# - 从抽象类型列表中获取特定类型的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837367/

相关文章:

c# - Xamarin 中的异步按钮事件

c# - 更改文本框文本时如何将选定的下拉列表索引设置为 0?

c# - 如何使 ASP.NET 使用 Owin OpenId Connect 库创建经过身份验证的 session ?

c# - LINQ to SQL 预加载条件

c# - 通过收集 DTO 来检测模型集合的变化

c# - 在 DataGrid 中修剪文本时的自动工具提示

c# - 如何计算两次之间的差异?

python - AES265 Python 到 C# 转换失败

c# - 有什么方法可以在不重载函数的情况下将 MongoDB ObjectId 用作 C# 中的可选参数

c# - .NET Core - 有没有办法在使用 Select Tag Heller 时将枚举设置为具有默认值?