Linq查询以选择仅类型的属性?

时间:2018-07-19 06:46:13

标签: c# linq

我有一个IEnumerable的{​​{1}},其中包含一个名为MyItem的属性,可以有几种类型。

我想要特定类型的所有MyProperty对象中的IEnumerable个。有没有一个linq命令可以做到这一点?

我尝试过

MyProperty

myItems.Where(mi => mi.MyProperty is MyType).Select(li => li.MyProperty as MyType)

myItems.Select(mi => mi.MyProperty as MyType).Where(mp => mp != null)

一切似乎有些混乱。有没有更简单的命令可以做到这一点?

1 个答案:

答案 0 :(得分:0)

我最终使用了

myItems.Select(mi => mi.MyProperty).OfType<MyType>()

如评论所示,这是最佳选择。