式に関するよくある質問

多数の兄弟ノードを含む式のパフォーマンスを向上させるにはどうすればよいですか。

Node.Siblings.Any(SiblingNode.Properties.Boolean Prop)のような兄弟に関するロジックを持つ式は、多数の兄弟が存在する階層でパフォーマンスの問題を引き起こす可能性があります。これは、各ノードに固有の兄弟セットがあるためです。たとえば、子A、B、C、DおよびEを持つ最上位ノードの場合、ノードAには兄弟B、C、D、Eがあり、ノードBには兄弟A、C、D、Eがあります。

式を作成するよりよい方法は、参照するプロパティを、子を使用して親で作成してから、ノードでそのプロパティを参照することです。たとえば、式Node.Children.Any(ChildNode.Properties.Boolean Prop)を使用してChildrenBooleanSetというプロパティを作成し、ノードNode.Parent.Properties.ChildrenBooleanSetでそのプロパティを参照します。

このタイプの式は、親の値をキャッシュできるため、パフォーマンスが向上します。

Caution:

前述の式の例では、子にはノード自体が含まれ、兄弟には含まれないことに注意してください。必要に応じて、ノード自体を除外するロジックを追加できます。