class Foo{
public string FooText { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
public ICollection<Bar> Bars{ get; set; }
}
class Bar{
public Foo Foo { get; set; }
public Language Language { get; set; }
public string FooText { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
}
我有一个Foo的集合。我希望用语言“Foo and Bar”获得语言名称“English”
fooCollection.Where(x =>
x.Translations.Where(q =>
q.Language.LanguageName == "English"));
然后失败了。 Can not convert Foo to bool.
我怎样才能完成这项工作。基本上我想得到语言为英语的Foo和Bar。
答案 0 :(得分:7)
.Where
会返回一个集合,而不是bool将其更改为.Any()
fooCollection.Where(x =>
x.Translations.Any(q =>
q.Language.LanguageName == "English"));
答案 1 :(得分:4)
x.Translations.Where
返回一个集合,而不是布尔值。
fooCollection.Where(x =>
x.Translations.Where(q =>
q.Language.LanguageName == "English")
.Count() > 0);
应该这样做。
编辑: 由于user2864740评论而添加了括号。 (但我同意.Any()是首选方式。)