我有一个包含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
中答案 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();