8,497
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<A> aas = new List<A>()
{
new A(){ Id=1, AName="AName1"},
new A(){ Id=2, AName="AName2"},
new A(){ Id=3, AName="AName3"},
new A(){ Id=4, AName="AName4"},
};
List<B> bbs = new List<B>()
{
new B(){ AId=1, BName="BName1"},
new B(){ AId=2, BName="BName2"},
new B(){ AId=3, BName="BName3"},
new B(){ AId=4, BName="BName4"},
};
List<C> ccs = new List<C>()
{
new C(){ AId=1, CName="CName1"},
new C(){ AId=2, CName="CName2"},
new C(){ AId=3, CName="CName3"},
new C(){ AId=4, CName="CName4"},
new C(){ AId=5, CName="CName5"}
};
var query = from a in aas
join b in bbs on a.Id equals b.AId into d
from e in d.DefaultIfEmpty()
select new
{
aId = a.Id,
aName = a.AName,
bName = e.BName
};
var query2 = ccs.Select(x => new
{
Aid = x.AId,
CName = x.CName,
AName = query.SingleOrDefault(s => s.aId == x.AId) == null ? null : query.SingleOrDefault(s => s.aId == x.AId).aName,
BName = query.SingleOrDefault(s => s.aId == x.AId) == null ? null : query.SingleOrDefault(s => s.aId == x.AId).bName
});
Console.Read();
}
}
public class A
{
public int Id { get; set; }
public string AName { get; set; }
}
public class B
{
public int AId { get; set; }
public string BName { get; set; }
}
public class C
{
public int AId { get; set; }
public string CName { get; set; }
}
}
var query = from a in aas
join b in bbs on a.Id equals b.AId into d
from e in d.DefaultIfEmpty()
select new
{
aId = a.Id,
aName = a.AName,
bName = e.BName
};
var query2 = ccs.Select(x => new
{
Aid = x.AId,
CName = x.CName,
AName = query.SingleOrDefault(s => s.aId == x.AId) == null ? null : query.SingleOrDefault(s => s.aId == x.AId).aName,
BName = query.SingleOrDefault(s => s.aId == x.AId) == null ? null : query.SingleOrDefault(s => s.aId == x.AId).bName
});
想把这两句写成一句 要怎么写? var query = from c in ccs
join a in aas on c.AId equals a.Id into t
from a in t.DefaultIfEmpty()
select new
{
Aid = c.AId,
CName =c.CName,
AName =a==null?"":a.AName,
BName =a==null?"":bbs.SingleOrDefault(b=>b.AId==a.Id).BName
};