C# 多嵌套FirstOrDefault

C# 多嵌套FirstOrDefault,c#,linq,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 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; }
}
我对以下对象运行此条件:
observetecollection Strediska

但由于未知原因(对我而言),它给了我以下错误: 无法将类型“SubStredisko”隐式转换为“bool”

我做错了什么?

您正在寻找:

FirstOrDefault
将生成与谓词匹配的第一个元素。您希望与第一个元素匹配,并生成一个
bool
,指示已找到匹配项,这就是
Any
所做的。

您要查找的:


FirstOrDefault
将生成与谓词匹配的第一个元素。您希望与第一个元素匹配,并生成一个
bool
,指示已找到匹配项,这是
Any
所做的。

错误消息确切地告诉您您做错了什么我只是不明白为什么会转换为bool,当我试图简单地检索一个元素时,如果您想查看它的参数类型,并找到它为什么接受它们的信息,以及如何提供它们的示例,您可以查看该方法的文档。当然,您已经在内部的
FirstOrDefault
调用中提供了一个计算布尔值的函数,因此您可能已经理解它接受一个提供条件的函数,a.k.a.布尔值。错误消息准确地告诉你你做错了什么我只是不明白为什么会转换为布尔值,当我试图检索一个元素时,你可以查看该方法的文档,如果你想查看它的参数类型并找到它为什么接受它们的信息,以及如何提供它们的示例。当然,您已经在内部的
FirstOrDefault
调用中提供了一个计算布尔值的函数,因此您可能已经理解它接受一个提供条件的函数,也称为布尔值。
var sStredisko = Strediska.FirstOrDefault(
                    n => n.Pracoviska.FirstOrDefault(x=>x.Name == "somename"));
var sStredisko = Strediska.FirstOrDefault(
                              n => n.Pracoviska.Any(x => x.Name == "somename"));