2009-05-28 25 views
4

所有項目我已經有了定義爲一個簡單的類:方法計算在高等教育層次對象列表

public class MyClass 
{ 
    //Some properties 
    public List<MyClass> SubEntries { get; set; } 
    //Some more properties 
} 

在另一大類我有以上類型的列表。目前,我有一個嚴重的心理障礙。我只需要遍歷列表並計算MyClass的所有出現次數。由於SubEntries屬性可以包含0個或多個可以包含0個或多個條目的條目,因此我覺得我需要某種遞歸方法,除非LINQ提供了一種機制來執行此操作。

任何幫助釋放此心理日誌果醬將不勝感激。

+0

你在你的結構中允許循環嗎? – Grzenio 2009-05-28 14:59:09

+0

不,在這種情況下不需要。 – 2009-05-28 16:49:38

回答

9

假設你不介意遞歸下降樹,並假設該列表總是非空,沒有循環:

public class MyClass 
{ 
    public List<MyClass> SubEntries { get; set; } 

    public int SubEntryCount 
    { 
     get { return 1 + SubEntries.Sum(x => x.SubEntryCount); } 
    } 
} 

您可能需要重命名它,這樣很明顯這是一個總計分項計數,不只是直系子女。