問題:
學生表,班級表,我要班級下面學生
A表,字段:AID,CLASS
B表,字段 :BID,BNAME,AID
A表數據
1 班級1
2 班級2
B表數據
1 學生1 1
2 學生2 1
3 學生3 2
4 學生4 2
我想得到
CLASS NAME
班級1 學生1,學生2
班級2 學生3,學生4
這樣怎么聯合?
答案:
namespace ConsoleApplication1 { public class A { public int AID { get; set; } public string Class { get; set; } } public class B { public int BID { get; set; } public string BName { get; set; } public int AID { get; set; } } class Program { static void Main(string[] args) { List<A> A = new List<A>() { new A(){ AID = 1, Class="班級1" }, new A(){ AID = 2, Class="班級2" }, }; List<B> B = new List<B>() { new B(){ BID = 1 , BName = "學生1", AID=1 }, new B(){ BID = 2 , BName = "學生2", AID=2 }, new B(){ BID = 3 , BName = "學生3", AID=1 }, new B(){ BID = 4 , BName = "學生4", AID=2 }, }; var lastResult = from p in A join q in B.GroupBy(x => x.AID).Select(x => new { Key = x.Key, Value = string.Join(",", B.Where(y => y.AID == x.Key).Select(y => y.BName)) }) on p.AID equals q.Key select new { CLASS = p.Class, Name = q.Value, }; foreach (var item in lastResult) { Console.WriteLine(item); } } } }