0

我有一本字典和一个清单。

AllMeta: is a dictionary<string, WikiMeta>

Meta: is a list<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 中选择值,其中 AllMeta.Values.Group == Meta.Group 返回 WikiMeta 列表。

但是,我正在努力构建语法(lambda),因此将不胜感激。

4

1 回答 1

3

尝试这个:

List<WikiMeta> wikis= AllMeta.Values
                             .Where(allmeta => 
                              Meta.Any(meta=> meta.Group == allmeta.Group))
                             .ToList();

我假设如下:

public class WikiMeta
{
   public string Name { get; set; }
   public string Group { get; set; }
}

public IDictionary<string,WikiMeta> AllMeta { get; set; }
public List<WikiMeta> Meta { get; set; }

确保你引用了System.Linq命名空间,即

using System.Linq;
于 2013-10-22T08:07:28.130 回答