linq 按类类型过滤

Mer*_*ğlu 9 c# linq filtering list

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

我所做的是;

var list2 = list1.SelectMany(x=> x.Type == PolyLine)
Run Code Online (Sandbox Code Playgroud)

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

我如何在这里过滤这些对象?

Ren*_*ogt 19

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

var list2 = list1.OfType<PolyLine>().ToList();
Run Code Online (Sandbox Code Playgroud)

list1这将选择类型为 的所有元素PolyLine

之后的ToList()结果类型list2List<PolyLine>.