C# - 错误CS1928:检查派生类的列表元素

T3d*_*b0t 6 c# linq generics

我有一个源自库(萨摩)的自定义类,如下所示:

public class DCBaseNode : Node {
    public bool selected = false;
}
Run Code Online (Sandbox Code Playgroud)

Neighbors库中返回的方法List<Node>.我希望能够这样做:

graph.Neighbors(theNode).Any(n => n.selected == true);
Run Code Online (Sandbox Code Playgroud)

但是Any看作nNode,不是DCBaseNode,所以它不明白.selected.

所以我尝试过:

graph.Neighbors(theNode).Any<DCBaseNode>(n => n.selected == true);
Run Code Online (Sandbox Code Playgroud)

...这给了我这个错误:

错误CS1928:输入System.Collections.Generic.List<Satsuma.Node>' does not contain a memberAny'和最好的扩展方法重载`System.Linq.Enumerable.Any(此System.Collections.Generic.IEnumerable,System.Func)'有一些无效的参数

......但我不清楚论证是如何无效的.

Jim*_*lla 6

听起来你需要垂头丧气......

graph.Neighbors(theNode)
    .OfType<DCBaseNode>()
    .Any(n => n.selected);
Run Code Online (Sandbox Code Playgroud)