我有一个电话组列表中的电话对象列表。手机上有一个属性“is4GCompatible”。
我想查询电话组,并告诉我所有包含4GComptible电话的电话组。 linq查询在某种程度上有效,但它也包括不兼容的手机,而不是我正在寻找的手机。
代码的实例:http://rextester.com/OKB8502
请指教?
答案 0 :(得分:0)
猜测一下,您想要使用包含4GComptible手机的群组。使用Where
+ Any
:
var all4GComptible = phoneGroups.Where(pg => pg.Any(p => p.is4GCompatible));
答案 1 :(得分:0)
您的示例代码中包含此内容,以获取包含4G兼容手机的群组:
phonegroups.Where(p => p.phones.Any(x => x.is4GCompatible == true)).ToList();
如果您要排除不兼容4G的手机,您需要构建仅包含4G兼容手机的新群组:
phonegroups.Where(pg => pg.phones.Any(p => p.is4GCompatible))
.Select(pg => new phonegroup
{
groupName = pg.groupName,
phones = pg.phones.Where(p => p.is4GCompatible).ToList()
})
.ToList();