使用下面的课程,我需要选择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; }
}
任何帮助表示感谢。
答案 0 :(得分:0)
嵌套Any
是直接方法:
var result = AllMeta
.Where(kv =>
Meta.Any(m =>
m.Groups.Any(mg =>
kv.Value.Groups.Any(vmg =>
vmg.Name == mg.Name))));
抱歉蒂姆,规格略有错误。 Meta是一个单一的 WikiMeta但有一个或多个组。
var result = AllMeta
.Where(kv => Meta.Groups.Any(mg => kv.Value.Groups.Any(vmg => vmg.Name == mg.Name)));