110,538
社区成员
发帖
与我相关
我的任务
分享
select new {
g.Key,
xx= g.Select(s => s.Field<string>("xx")),
xxx = g.Select(s => s.Field<string>("xxx")),
};
Hi 两位大神,最后再问下,在新的datatable中只需要部分列怎么写,这个select子句不会写。比如我只需要"符号","孔径要求","镀通孔"三列
你把组头看作一行数据不就行了嘛
linq to DataSet,类似:
var result = from p in table.AsEnumerable()
group p by p.Field<int>("NOTE") into g
select new
{
g.Key,
g
};
遍历result 拼接数据就行了。DataTable dt = new DataTable();
dt.Columns.Add("符号");
dt.Columns.Add("孔径要求");
dt.Columns.Add("NOTE");
for (int j = 0; j < 6; j++)
{
DataRow row =dt.NewRow();
dt.Rows.Add(row);
row["NOTE"] = "L1-6";
row["孔径要求"] = "0.25" + j.ToString();
}
//分组
DataTable dt1 = dt.DefaultView.ToTable(true, "NOTE");
foreach (DataRow row in dt1.Rows)
{
string node = row["NOTE"].ToString();
DataRow[] rows = dt.Select("NOTE like '"+ node +"'");
}
数据给你分出来了,基本就是这样的思路,你参考一下吧,
//#3,复制一个新表
DataTable newTable = dtCustomers.Clone();
foreach(var group in results)
{
var row = newTable.NewRow();
row[0] = linq出来的key
newTable.Rows.Add(row);
//将分组结果放入新表
foreach(var customer in group.Customers)
{
row = newTable.NewRow();
row.ItemArray = customer.ItemArray;
newTable.Rows.Add(row);
}
}