110,552
社区成员
发帖
与我相关
我的任务
分享
1 一班 全日制 张三 95.03 63 158.03
2 二班 寄读 李四 62.36 0 62.36
3 三班 全日制 王二 98.54 0 98.54
4 四班 全日制 李武 68.55 54 122.55
DataTable dt = new DataTable();
dt.Columns.Add("序号", typeof(int));
dt.Columns.Add("班级", typeof(string));
dt.Columns.Add("类型", typeof(string));
dt.Columns.Add("姓名", typeof(string));
dt.Columns.Add("分数", typeof(decimal));
DataRow dr1 = dt.NewRow();
dr1["序号"] = 1;
dr1["班级"] = "一班";
dr1["类型"] = "全日制";
dr1["姓名"] = "张三";
dr1["分数"] = 95.03;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["序号"] = 2;
dr2["班级"] = "二班";
dr2["类型"] = "寄读";
dr2["姓名"] = "李四";
dr2["分数"] = 62.36;
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["序号"] = 3;
dr3["班级"] = "三班";
dr3["类型"] = "全日制";
dr3["姓名"] = "王二";
dr3["分数"] = 98.54;
dt.Rows.Add(dr3);
DataRow dr4 = dt.NewRow();
dr4["序号"] = 4;
dr4["班级"] = "四班";
dr4["类型"] = "全日制";
dr4["姓名"] = "李武";
dr4["分数"] = 68.55;
dt.Rows.Add(dr4);
DataTable dt2 = new DataTable();
dt2.Columns.Add("班级", typeof(string));
dt2.Columns.Add("姓名", typeof(string));
dt2.Columns.Add("考核分", typeof(decimal));
DataRow dr5 = dt2.NewRow();
dr5["班级"] = "一班";
dr5["姓名"] = "张三";
dr5["考核分"] = 63;
dt2.Rows.Add(dr5);
DataRow dr6 = dt2.NewRow();
dr6["班级"] = "四班";
dr6["姓名"] = "李武";
dr6["考核分"] = 54;
dt2.Rows.Add(dr6);
var vardt = from rHead in dt.AsEnumerable()
join rTail in dt2.AsEnumerable()
on new { b = rHead.Field<string>("班级"), x = rHead.Field<string>("姓名") } equals new { b = rTail.Field<string>("班级"), x = rTail.Field<string>("姓名") } into temp
from t in temp.DefaultIfEmpty()
select new
{
序号 = rHead.Field<int>("序号"),
班级 = rHead.Field<string>("班级"),
类型 = rHead.Field<string>("类型"),
姓名 = rHead.Field<string>("姓名"),
分数 = rHead.Field<decimal>("分数"),
考核分 = (t == null ? 0 : t.Field<decimal>("考核分")),
合计 = (rHead.Field<decimal>("分数") + (t == null ? 0 : t.Field<decimal>("考核分")))
};
foreach (var r1 in vardt)
{
Console.WriteLine(r1.序号.ToString() + " " + r1.班级.ToString() + " " + r1.类型.ToString() + " " + r1.姓名.ToString() + " " + r1.分数.ToString() + " " + r1.考核分.ToString() + " " + r1.合计.ToString());
}