用Linq给DataTable或DataRows 去重

            DataRow[] unitRows =
               taskUnitDb.Select("GeoID=" + rootNode.ObjEntity.ObjID + " and NavigateID=" +
                                 rootNode.ObjEntity.NavigateID + " and UnitID=" + unitID +
                                 " and OrganizationID=" + rootNode.ObjEntity.OrgID + " and WorkID =" + AppGlobal.WorkID);

            //去掉重复单元
            var distinctRows = unitRows.AsEnumerable().Cast<DataRow>()
                        .Select(row => new
                        {
                            GeoID = row.Field<int>("GeoID"),
                            NavigateID = row.Field<int>("NavigateID"),
                            UnitID = row.Field<int>("UnitID"),
                            OrganizationID = rootNode.ObjEntity.OrgID,
                            WorkID = AppGlobal.WorkID,
                            UnitName = row.Field<string>("UnitName"),
                            UnitEnumType = row.Field<string>("UnitEnumType")
                        })
                        .Distinct().ToList();

            foreach (var dr in distinctRows)
            {
                string id = dr.UnitID + "";
                string name = dr.UnitName;
                OfEntityObjectType objType =
                    (OfEntityObjectType)Enum.Parse(typeof(OfEntityObjectType), dr.UnitEnumType);
                // 绑定单元(计算单元、开发单元、评估单元)
                childNode = CreateAbstractNode(rootNode.ObjEntity.ObjID, name, objType, rootNode);

                childNode.ObjEntity.UnitID = id;
                childNode.ObjEntity.UnitName = name;
                childNode.ObjEntity.NodeEnumType = NodeEnumType.Unit;
                childNode.ObjEntity.Wells = Well.GetWellsInUnit(int.Parse(id));

                if (childNode != null)
                    rootNode.Nodes.Add(childNode);
            }
注意项目需要添加System.Data.DataSetExtensions引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值