问题:
学生表,班级表,我要班级下面学生
A表,字段:AID,CLASSB表,字段 :BID,BNAME,AIDA表数据1 班级12 班级2B表数据1 学生1 12 学生2 1 3 学生3 24 学生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 = new List() { new A(){ AID = 1, Class="班级1" }, new A(){ AID = 2, Class="班级2" }, }; List B = new List() { 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); } } }}