LINQ按类类型过滤

时间:2019-01-08 12:56:09

标签: c# list linq filtering

我有一个列表,其中包含2种不同类型的对象,即折线和文本。 我只想创建一个新的折线列表。

我要做的是

var list2 = list1.SelectMany(x=> x.Type == PolyLine)

错误:“ PolyLine”是一种类型,在给定的上下文中无效。

如何在此处过滤这些对象?

2 个答案:

答案 0 :(得分:2)

只需使用OfType<T>扩展名:

var list2 = list1.OfType<PolyLine>().ToList();

这会选择list1中类型为PolyLine的所有元素。

ToList()之后,list2的最终类型为List<PolyLine>

答案 1 :(得分:1)

您不需要yyyy-MM-ddThh:mm,而是需要SelectMany子句:

Where

这使用var result = list1.Where(x => x is PolyLine); 运算符来获取正确的类型。

使用is扩展方法可以进一步简化此操作。