【发布时间】:2012-10-11 14:15:39
【问题描述】:
我想在数据表中修改我的表。我知道我必须使用linq 并将结果分组。
之前:
ID Name LastName
1 Kiki ha
3 lola mi
2 ka xe
2 Kiki ha
之后:
Name LastName 1 3 2
Kiki ha x x
lola mi x
ka xe x
我的原始代码:
DataTable table1 = new DataTable("table");
table1.Columns.Add("ID", typeof(String));
table1.Columns.Add("Name", typeof(String));
table1.Columns.Add("Lastname", typeof(String));
object[] a1 = { 1, "Kiki", "ha" };
object[] a2 = { 3, "lola", "mi" };
object[] a4 = { 2, "ka", "xe" };
object[] a5 = { 2, "kiki", "ha" };
table1.Rows.Add(a1);
table1.Rows.Add(a2);
table1.Rows.Add(a4);
table1.Rows.Add(a5);
我也试过了,但是没用:
var result = from t1 in table1.AsEnumerable()
group t1 by new {ID = t1.Field<String>("ID")} into grp
select new
{
ID = grp.Key.ID,
//something must be there
};
DataGridView1.DataSource = result.ToList();
【问题讨论】:
-
您真的要为该表中的每个 id 添加一列吗?
-
是的,我想为每个 ID 添加列,所以应该是第 1 列、第 3 列和第 2 列
-
... 而
x是x还是布尔值? -
当然x表示用户有那个ID。
-
我更喜欢 x 而不是 bool :p coz 然后当我将它转换为 excel 时我可以看到 x
标签: c# datatable multiple-columns