Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于子节点计算父节点值';s值_C#_Tree_Traversal - Fatal编程技术网

C# 基于子节点计算父节点值';s值

C# 基于子节点计算父节点值';s值,c#,tree,traversal,C#,Tree,Traversal,我将使用枚举整数值,通过添加int值并与子节点计数进行比较,得出父节点上的状态(无、等于或包含)。我将感谢任何帮助和提前感谢 public static void SelectionSetContainment(Node<SelectionSetCheckNode> root, NW.ModelItemCollection currentSelection) { foreach (Node<SelectionSetCheckNode> savedItem

我将使用枚举整数值,通过添加int值并与子节点计数进行比较,得出父节点上的状态(无、等于或包含)。我将感谢任何帮助和提前感谢

public static void SelectionSetContainment(Node<SelectionSetCheckNode> root, NW.ModelItemCollection currentSelection)
{
        foreach (Node<SelectionSetCheckNode> savedItem in root.Children)
        {
            var node = savedItem.Value.SavedItem;

            if (node is NW.SelectionSet selectionSet)
            {
                var selectionSetItems = selectionSet.GetSelectedItems();

                if (currentSelection.IsContentsIntersected(selectionSetItems))
                    savedItem.Value.State = currentSelection.IsSelected(selectionSetItems) ? CheckState.Equals : CheckState.Contains;
            }
            else if (node is NW.FolderItem)
                SelectionSetContainment(savedItem, currentSelection);
        }
}
        false
      /   |    \
    true true   false
   /   \
true  true