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

时间:2014-08-13 19:11:52

标签: c# linq generics

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

public class DCBaseNode : Node {
    public bool selected = false;
}

和库中返回Neighbors的{​​{1}}方法。我希望能够做到这一点:

List<Node>

但是graph.Neighbors(theNode).Any(n => n.selected == true); Any视为n,而不是Node,因此它不了解DCBaseNode

所以我试过了:

.selected

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

  

错误CS1928:输入graph.Neighbors(theNode).Any<DCBaseNode>(n => n.selected == true); 任意&#39;和最好的扩展方法重载`System.Linq.Enumerable.Any(this System.Collections.Generic.IEnumerable,System.Func)&#39;有一些无效的论点

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

1 个答案:

答案 0 :(得分:6)

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

graph.Neighbors(theNode)
    .OfType<DCBaseNode>()
    .Any(n => n.selected);