linq join


    數據准備:
    List<dynamic> ls1=new List<dynamic>{
        new {Id = 1,Name = "張三"},
        new {Id = 2,Name = "李四"},
        new {Id = 3,Name = "王五"},
        new {Id = 4,Name = "趙六"}
    };
    List<dynamic> ls2=new List<dynamic>{
        new {Name = "張三", Subject="語文", Score=60},
        new {Name = "張三", Subject="數學", Score=70},
        new {Name = "張三", Subject="外語", Score=80},
        new {Name = "李四", Subject="語文", Score=85},
        new {Name = "王五", Subject="語文", Score=69}
    };

Join

Inner Join

    var ls = from x in ls1
             join y in ls2 on x.Name equals y.Name
             select new {
                 Id = x.Id,
                 Name = x.Name,
                 Subject = y.Subject,
                 Score = y.Score
             };
    // or 
    var ls = ls1.Join(ls2, x=>x.Name, y=>y.Name, (x,y)=>new {
                 Id = x.Id,
                 Name = x.Name,
                 Subject = y.Subject,
                 Score = y.Score
             });

Left Outer Join

    var ls = from x in ls1
             join y in ls2 on x.Name equals y.Name into g
             from z in g.DefaultIfEmpty()
             select new {
                 Id = x.Id,
                 Name = x.Name,
                 Subject = z?.Subject,
                 Score = z?.Score
             };

GroupJoin

    var ls = from x in ls2
             group x by x.Subject into g
             select new {
                 Subject = g.Key,
                 MaxScore = g.Max(x=>x.Score)
             };

Order By

    var ls = from x in ls2
             orderby x.Subject,x.Score descending
             select x


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM