多嵌套的FirstOrDefault

Rob*_* J. 1 c# linq

我有以下型号:

public class Stredisko
{
    public string Name { get; set; }
    public ObservableCollection<SubStredisko> Pracoviska { get; set; }
    public ObservableCollection<SubStredisko> Dohodari { get; set; }
}
public class SubStredisko
{
    public string Name { get; set; }
    public string Code { get; set; }

    public VyplatnePasky VyplatnaPaska { get; set; }
    public MzdoveNaklady MzdoveNaklady { get; set; }
    public Poistne Poistne { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试运行一个超级简单的LINQ查询,该查询应返回符合以下条件的第一个元素:

var sStredisko = Strediska.FirstOrDefault(
                    n => n.Pracoviska.FirstOrDefault(x=>x.Name == "somename"));
Run Code Online (Sandbox Code Playgroud)

我对此运行此条件: ObservableCollection<Stredisko> Strediska

但是由于未知原因(对我来说)它给我以下错误: 不能隐式地将类型'SubStredisko'转换为'bool'.

我究竟做错了什么?

Yuv*_*kov 9

您正在寻找Enumerable.Any:

var sStredisko = Strediska.FirstOrDefault(
                              n => n.Pracoviska.Any(x => x.Name == "somename"));
Run Code Online (Sandbox Code Playgroud)

FirstOrDefault将产生与谓词匹配的第一个元素.你想要匹配第一个元素,并产生一个bool指示已找到匹配,这是什么Any.