110,561
社区成员
发帖
与我相关
我的任务
分享
Console.WriteLine("合计:" + result.Sum(a => Convert.ToInt32(a.Name1)));
//你上面2楼那个普通的合并方法可以修改成这样就可以了
public DataTable Merge(DataTable table1, DataTable table2)
{
DataTable table = new DataTable();
//init new table
for (int i = 0; i < table1.Rows.Count; i++)
{
int j;
for (j = 0; j < table2.Rows.Count; j++)
{
if (table1.Rows[i][0].ToString() == table2.Rows[j][0].ToString())
{
//add new row 表1表2相同编号的行
break;
}
}
if (j >= table2.Rows.Count)
{
//add new row 表1有表2没有的行
}
}
return table;
}
//你上面2楼那个普通的合并方法可以修改成这样就可以了
public DataTable Merge(DataTable table1, DataTable table2)
{
DataTable table = new DataTable();
//init new table
for (int i = 0; i < table1.Rows.Count; i++)
{
int j;
for (j = 0; j < table2.Rows.Count; j++)
{
if (table1.Rows[i][0].ToString() == table2.Rows[j][0].ToString())
{
//add new row 表1表2相同编号的行
break;
}
}
if (j >= table2.Rows.Count)
{
//add new row 表1有表2没有的行
}
}
return table;
}
//我这里写的字段2都是字符串类型,你可以按照你需要的修改这个语句
//关键是进行左连接查询就可以了
var result = from DataRow d1 in dt1.Rows
join DataRow d2 in dt2.Rows
on d1[0] equals d2[0]
into dt3
from p in dt3.DefaultIfEmpty()
select new
{
No = d1[0], //编号
Name1 = d1[1],//名称1
Name2 = p != null ? p[1] : "0"//名称2
};
result.ToList().ForEach(a =>
{
Console.WriteLine(a.No + " " + a.Name1 + " " + a.Name2 + " " + a.Name1 + "/" + a.Name2);
});
public DataTable Merge(DataTable table1, DataTable table2)
{
DataTable table = new DataTable();
DataRow row = table.NewRow();
row[0] = "编号";
row[1] = "名称1";
row[2] = "名称2";
row[3] = "计算";
table.Rows.Add(row);
for (int i = 0; i < table1.Rows.Count; i++)
{
for (int j = 0; j < table2.Rows.Count; j++)
{
if (table1.Rows[i][0].ToString() == table2.Rows[j][0].ToString())
{
DataRow newRow = table.NewRow();
newRow[0] = table1.Rows[i][0].ToString();
newRow[1] = table1.Rows[i][1].ToString();
newRow[2] = table2.Rows[j][1].ToString();
newRow[3] = Convert.ToInt32(table1.Rows[i][1].ToString()) / Convert.ToInt32(table1.Rows[j][1].ToString());
table.Rows.Add(newRow);
}
}
}
return table;
}