2017-07-11 102 views
0

列表使用內屬性我有包含以下類型的對象組通過使用Lambda表達式

public class A { 

    public List<B> B {get;set;} 

} 

B class狀態如下的列表。

public class B { 

    public List <C> C { get;set;} 
} 

C class狀態如下。

public class C { 

    public int Id { get ; set ;} 
    public string Name { get; set;} 
} 

有人能指出我哪能組以上由CName屬性列表。

+0

什麼是你期望的輸出(通過@chadalavada哈里什提供)? –

+0

姓名和多少次重複同名 – NoughT

回答

2
var results = a.SelectMany(a1 => a1.B.SelectMany(b1 => b1.C) 
       .GroupBy(g => g.Name) 
       .Select(g => new { Name = g.Key, Count = g.Count() })); 

應該返回包含Name屬性每一個獨特的名字中發現,有Count屬性指定的多少是Name進行分組沿對象的列表。

SelectMany的嵌套調用將展平對象層次結構,GroupBy將在Name屬性上創建分組。最後,通過Select返回一個新的匿名類型列表,並使用該組中的屬性填充,其中g.Key是該分組基於的值(C.Name)。

小提琴可以發現Here

+0

感謝您的幫助。有用 – NoughT