我有以下型号:
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; }
}
我现在正在尝试运行一个超级简单的LINQ查询,该查询应返回符合以下条件的第一个元素:
var sStredisko = Strediska.FirstOrDefault(
n => n.Pracoviska.FirstOrDefault(x=>x.Name == "somename"));
我对ObservableCollection<Stredisko> Strediska
但是由于未知原因(对我而言)它给了我以下错误: 无法隐式转换类型&#39; SubStredisko&#39;到&#39; bool&#39; 。
我做错了什么?
答案 0 :(得分:9)
您正在寻找Enumerable.Any
:
var sStredisko = Strediska.FirstOrDefault(
n => n.Pracoviska.Any(x => x.Name == "somename"));
FirstOrDefault
将产生与谓词匹配的第一个元素。您希望与第一个元素进行匹配,并产生一个bool
,表示已找到匹配项,这是Any
所做的。