在嵌套列表中查找匹配项的Linq查询

在嵌套列表中查找匹配项的Linq查询,linq,Linq,使用下面的类,我需要从AllMeta中选择在Meta中有匹配项的项 匹配条件是Meta.Groups.Name中至少有一个组与AllMeta.Values.Groups.Name中的组匹配 AllMeta: is a dictionary<string, WikiMeta> Meta: is a WikiMeta public class WikiMeta { public string ContentTitle { get; set; } public strin

使用下面的类,我需要从AllMeta中选择在Meta中有匹配项的项

匹配条件是Meta.Groups.Name中至少有一个组与AllMeta.Values.Groups.Name中的组匹配

AllMeta: is a dictionary<string, WikiMeta>
Meta: is a WikiMeta

public class WikiMeta
{
    public string ContentTitle { get; set; }
    public string PageTitle { get; set; }
    public string PageMetaDescription { get; set; }
    public List<WikiArticle> Articles = new List<WikiArticle>();
    public List<WikiGroup> Groups = new List<WikiGroup>();
}

public class WikiGroup
{
    public string Name { get; set; }
}
AllMeta:是一本字典
梅塔:是维基梅塔吗
公共类WikiMeta
{
公共字符串ContentTitle{get;set;}
公共字符串PageTitle{get;set;}
公共字符串PageMetaDescription{get;set;}
公共列表文章=新列表();
公共列表组=新列表();
}
公共类维基组
{
公共字符串名称{get;set;}
}

感谢您的帮助。

嵌套的
Any
是最直接的方法:

var result = AllMeta
    .Where(kv => 
        Meta.Any(m => 
            m.Groups.Any(mg => 
                kv.Value.Groups.Any(vmg => 
                    vmg.Name == mg.Name))));

抱歉,蒂姆,规格中有轻微错误。梅塔是个单身汉 WikiMeta,但包含一个或多个组


谢谢你的及时回答,蒂姆-我会测试它的。对不起,蒂姆,规格中有点小错误。Meta是单个WikiMeta,但包含一个或多个组。
var result = AllMeta
  .Where(kv => Meta.Groups.Any(mg => kv.Value.Groups.Any(vmg =>  vmg.Name == mg.Name)));