0

私はC#でList<Leaf>名前を付けています。itemsリーフには次のプロパティがあります。

public class Leaf
{
  public int ID { get; set; }

  public int ParentID { get; set; }

  public bool IsFlagged { get; set; }
}

リーフにIsFlaggedプロパティ セットがある場合は、アイテムのコレクションから削除する必要があります。さらに、そのリーフ エンティティの子をすべて削除する必要があります。このコードを書く最もエレガントな方法を見つけようとしています。現在、ループ内にループがありますが、ずさんなようです。

これを行うためのエレガントな方法を知っている人はいますか?

4

2 に答える 2

0

ツリーを扱う最も合理的な (そしておそらく「最もエレガントな」) 方法は、ツリーを配列/リストではなくツリーとして格納することです。この場合、すべての子を見つけるために歩行要素を処理する必要はありません。

実際の要件ツリーによっては、最適なデータ構造ではない場合がありますが、すべての子ノードを持つノードを削除する場合、通常のツリーに勝るものはありません。

于 2013-02-18T21:34:33.740 に答える