获取数据集中多个值的计数 table
Get count of multiple values in a dataset table
我有一个包含 ParentID 列的数据集 table,我想将此列中的多个值的计数放入一个新的 table 中,其中包含两个字段,例如 ParentID 5978 和 ParentID 的计数4.
我的 table 专栏的片段
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"));
我要查询的table在数据集da
中
尝试这样的事情。使用 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();
我有一个包含 ParentID 列的数据集 table,我想将此列中的多个值的计数放入一个新的 table 中,其中包含两个字段,例如 ParentID 5978 和 ParentID 的计数4.
我的 table 专栏的片段
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"));
我要查询的table在数据集da
中尝试这样的事情。使用 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();