C#正则表达式的运用问题,判断输入的字符串是否符合标准。

2025-03-19 00:18:41
推荐回答(1个)
回答1:


        /// 
        /// 递归展开Bom
        /// 

        /// 所有数据集
        /// 根节点物料
        /// 根树节点
        private void ResolveSubTree(DbSet listBom, TbBom bom, TreeNode treeNode)
        {
            //获取所有bom节点物料代码为父节点代码的物料
            List subListClone = listBom.Where(p => p.ParentPartNo == bom.PartNo).ToList();
            //获取所有bom节点物料代码为父节点代码的物料(过滤重复物料,用作循环)
            var subList = listBom.Where(p => p.ParentPartNo == bom.PartNo).GroupBy(p => p.PartNo).Select(p => p.FirstOrDefault()).ToList();
            //如果包含子节点
            if (subList.Count > 0)
            {
                //树展开
                treeNode.Expanded = false;
                //循环遍历子节点
                foreach (TbBom subBom in subList)
                {
                    //查询出 子节点,和 当前父节点下 子节点的数量汇总
                    var sbom = new { b = subBom, c = subListClone.Where(p => p.PartNo == subBom.PartNo).Select(p => p.Qty).Sum() };
                    //创建节点
                    TreeNode node = new TreeNode();

                    node.Value = sbom.b.PartNo;
                    node.ToolTip = GetParentNodeNames(listBom, bom.ParentNos);
                    treeNode.ChildNodes.Add(node);

                    if (Valied(bom.ParentNos, sbom.b.PartNo))
                    {
                        node.ImageUrl = "~\\image\\flase.gif";
                        node.Text = string.Format("{0}", sbom.b.MaterialName);
                        continue;
                    }
                    else
                    {
                        node.ImageUrl = "~\\image\\true.gif";
                        node.Text = string.Format("{0}({1})", sbom.b.MaterialName, sbom.c);
                    }
                    ResolveSubTree(listBom, subBom, node);
                }
            }
        }