获取数据集表中的多个值的计数

时间:2015-07-19 17:11:56

标签: c# linq dataset

我有一个包含ParentID列的数据集表,并希望将此列中的多个值计数到一个包含两个字段的新表中,例如ParentID 5978和ParentID 4的计数。

我的表格列的片段

ParentID
5978
5978
5978
5978
5979
5979
5979
5979
5979
5979
5979
5979
5980
5980
5980
5980
5981
5981
5981

代码片段:

TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
            TreeNodeDataSet parentNodes = tree.SelectNodes(SiteContext.CurrentSiteName, "/Shop%", LocalizationContext.CurrentCulture.CultureCode, false, "My.ProductCategory", "OriginalID = " + cId, "NodeID", -1, false, 1);
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            DataSet dx = new DataSet();
            DataSet da = new DataSet();
            ds = parentNodes.Items.FirstItem.Children;
            dx = parentNodes.Items.FirstItem.AllChildren;
            da.Merge(dx.Tables[0].Select("NodeLevel = 4"));

我要查询的表位于数据集da

1 个答案:

答案 0 :(得分:1)

尝试这样的事情。使用GroupBy()

           DataTable dt = new DataTable();

            dt.Columns.Add("ParentID", typeof(int));
            dt.Rows.Add(new object[] {5978});
            dt.Rows.Add(new object[] {5978});
            dt.Rows.Add(new object[] {5978});
            dt.Rows.Add(new object[] {5978});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5979});
            dt.Rows.Add(new object[] {5980});
            dt.Rows.Add(new object[] {5980});
            dt.Rows.Add(new object[] {5980});
            dt.Rows.Add(new object[] {5980});
            dt.Rows.Add(new object[] {5981});
            dt.Rows.Add(new object[] {5981});
            dt.Rows.Add(new object[] {5981});

            var results = dt.AsEnumerable()
                .GroupBy(x => x.Field<int>("ParentID"))
                .Select(x => new { ParentID = x.Key, Count = x.Count() })
                .ToList();
​
相关问题