簡體   English   中英

如何遞歸檢查實體是否具有同一實體的子集合?

[英]How to recursively check if the entity has a collection of children of that same entity?

所以我有一個節點,這意味着一行文本。 這是代碼:

public class Node : BaseEntity
{
    public string Name { get; set; }
    public int Position { get; set; }
    public Guid? ParentId { get; set; }
    public virtual Node Parent { get; set; }
    public virtual ICollection<Node> Children { get; set; }
}

這是應該的樣子:

A. Blabla
   A.1 Meetings
       A.1.1 Standup
   A.2 Documents
       A.2.1 Wages
             A.2.1.1 Management
             A.2.1.1 Workers
B. Whatever
 ....

所以每個節點都有它的名字,一個 position(A1、A2 等...),如果它有一個節點(除了最頂層的節點,例如 A 和 B),如果它有子節點(例如 A 有兒童 A1、A2 等...)

我如何遞歸地檢查一個節點是否有孩子,然后 foreach 這些孩子 => 如果這些孩子中的任何一個有孩子,等等......

例如,即使它有 7 層深......

據我所知,你基本上有一個樹結構。

您已經在節點上擁有子項信息,因此您可以查看這篇文章以了解如何遍歷它們。

您可以使用此代碼從父級開始遍歷您的樹。

 public static void ProcessChildren(Node parent)
    {
        Console.WriteLine(parent.Position +" "+ parent.Name);
        foreach (Node node in parent.Children)
        {
            ProcessChildren(node);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM