我有一个具有以下属性的类:
public List<CommitmentItem<ITransaction, ITransactionItem>> CommitmentItems;
public List<CapitalCallCommitmentItem> CapitalCallCommitmentItems;
Run Code Online (Sandbox Code Playgroud)
CapitalCallCommitmentItem继承CommitmentItem.我希望CapitalCallCommitmentItems属性返回CommitmentItems类型为CapitalCallCommitmentItem的所有内容.所以我尝试了这段代码:
get
{
return CommitmentItems
.Where(c => c.GetType() == typeof(CapitalCallCommitmentItem))
.Select(c => (CapitalCallCommitmentItem)c)
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误说:
错误1无法将类型'Models.CommitmentItem'转换为'Models.CapitalCallCommitmentItem'
这样做的正确方法是什么?
Ant*_*ram 12
使用OfType扩展方法.
return CommitmentItems.OfType<CapitalCallCommitmentItem>().ToList();
Run Code Online (Sandbox Code Playgroud)
在您的代码中,虽然您正在过滤where子句中的子类型,但它仍将返回列表的常规类型.OfType将返回提供的类型的可枚举.
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |