110,538
社区成员
发帖
与我相关
我的任务
分享
class A
{
public string id { get; set; }
}
class B
{
public string b_id { get; set; }
public int b_n { get; set; }
}
class C
{
public string c_id { get; set; }
public int c_n { get; set; }
}
//初始化
List<A> a_list = new List<A>();
a_list.Add(new A() {id="1" });
a_list.Add(new A() { id = "2" });
a_list.Add(new A() { id = "3" });
List<B> b_list = new List<B>();
b_list.Add(new B() { b_id = "1", b_n = 10 });
b_list.Add(new B() { b_id = "3", b_n = 20 });
b_list.Add(new B() { b_id = "3", b_n = 40 });
b_list.Add(new B() { b_id = "2", b_n = 30 });
List<C> c_list = new List<C>();
c_list.Add(new C() { c_id = "1", c_n = 100 });
c_list.Add(new C() { c_id = "3", c_n = 200 });
c_list.Add(new C() { c_id = "3", c_n = 300 });
c_list.Add(new C() { c_id = "2", c_n = 400 });
c_list.Add(new C() { c_id = "2", c_n = 500 });
//运算
var queryB = from b in b_list
group b by new{b.b_id} into qB
select new
{
IDB=qB.Key.b_id,
CountB=qB.Sum(x=>x.b_n)
};
var queryC=from c in c_list
group c by new{c.c_id} into qC
select new
{
IDC=qC.Key.c_id,
CountC=qC.Sum(y=>y.c_n)
};
var q_result = from a in a_list
join b in queryB on a.id equals b.IDB
join c in queryC on a.id equals c.IDC
select new
{
ID = a.id,
SumB = b.CountB,
SumC = c.CountC
};
//结果
id 文件数 消息数
1 10 100
2 30 900
3 60 500
var result =from p in 任务表
let count1 = 文件表.Count(c=>c.任务id==p.Id)
let count2 = 消息表.Count(c=>c.任务id==p.Id)
select new
{
任务id=p.Id,
文件数= count1,
消息数= count2,
}