2013-10-22 112 views
0

我有一本字典和一個列表。Linq查詢從另一個列表中選擇列表中的項目

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),所以任何幫助將不勝感激。

回答

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; 
+0

感謝您的答覆馬尼什。我錯過了一個WikiMeta可以有多個組,因此是一個列表。 – dotnetnoob

相關問題