当前位置: 首页>>代码示例>>C#>>正文


C# Set.Clear方法代码示例

本文整理汇总了C#中System.Collections.Set.Clear方法的典型用法代码示例。如果您正苦于以下问题:C# Set.Clear方法的具体用法?C# Set.Clear怎么用?C# Set.Clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Collections.Set的用法示例。


在下文中一共展示了Set.Clear方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AddParentsOfNeededGraphElements

        private void AddParentsOfNeededGraphElements(Set<INode> latelyAddedNodes)
        {
            Set<INode> newlyAddedNodes = new Set<INode>();

            // wavefront algorithm, in the following step all nodes added by the previous step are inspected,
            // until the wave collapses cause no not already added node is added any more
            while(latelyAddedNodes.Count > 0)
            {
                foreach(INode node in latelyAddedNodes)
                {
                    bool parentFound = false;
                    foreach(GroupNodeType groupNodeType in ycompClient.dumpInfo.GroupNodeTypes)
                    {
                        foreach(IEdge edge in node.Incoming)
                        {
                            INode parent = edge.Source;
                            if(!groupNodeType.NodeType.IsMyType(parent.Type.TypeID)) continue;
                            GroupMode grpMode = groupNodeType.GetEdgeGroupMode(edge.Type, node.Type);
                            if((grpMode & GroupMode.GroupOutgoingNodes) == 0) continue;
                            if(!excludedGraphNodesIncluded.ContainsKey(parent))
                            {
                                newlyAddedNodes.Add(parent);
                                ycompClient.AddNode(parent);
                                excludedGraphNodesIncluded.Add(parent, true);
                                ycompClient.AddEdge(edge);
                                if(!excludedGraphEdgesIncluded.ContainsKey(edge))
                                    excludedGraphEdgesIncluded.Add(edge, true);
                            }
                            parentFound = true;
                        }
                        if(parentFound)
                            break;
                        foreach(IEdge edge in node.Outgoing)
                        {
                            INode parent = edge.Target;
                            if(!groupNodeType.NodeType.IsMyType(parent.Type.TypeID)) continue;
                            GroupMode grpMode = groupNodeType.GetEdgeGroupMode(edge.Type, node.Type);
                            if((grpMode & GroupMode.GroupIncomingNodes) == 0) continue;
                            if(!excludedGraphNodesIncluded.ContainsKey(parent))
                            {
                                newlyAddedNodes.Add(parent);
                                ycompClient.AddNode(parent);
                                excludedGraphNodesIncluded.Add(parent, true);
                                ycompClient.AddEdge(edge);
                                if(!excludedGraphEdgesIncluded.ContainsKey(edge))
                                    excludedGraphEdgesIncluded.Add(edge, true);
                            }
                            parentFound = true;
                        }
                        if(parentFound)
                            break;
                    }
                }
                Set<INode> tmp = latelyAddedNodes;
                latelyAddedNodes = newlyAddedNodes;
                newlyAddedNodes = tmp;
                newlyAddedNodes.Clear();
            }
        }
开发者ID:jblomer,项目名称:GrGen.NET,代码行数:59,代码来源:Debugger.cs


注:本文中的System.Collections.Set.Clear方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。