下面的查询没有给出预期的结果。我所期望的是,如果任何条件都匹配,我需要所有联系人,但它不会给我的结果
Func<BAL.Contact, bool> expr_contact =
x => x.Name.NullSafeStartWith(txtSearch.Text)
|| x.ContactDetails.All(a => a.TP.StartsWith(txtSearch.Text));
我搜索了联系人姓名,但如果搜索文本与联系人详细信息不匹配,则会得到一个空结果:(
您说的是"姓名以X开头。或者ALL联系人详细信息以X开头"。您想要"姓名以X开头。或ANY联系方式以X开头":
Func<BAL.Contact, bool> expr_contact =
x => x.Name.NullSafeStartWith(txtSearch.Text)
|| x.ContactDetails.Any(a => a.TP.StartsWith(txtSearch.Text));
// ^^^ Any