C#进阶-Linq-join


join:

var majors=from m in Majors

                   join t in Teachers

                  on m.Teacher  equals t     --不能使用==

                  where t.Name='小王'

                  select m;

left outer join:左边的集合必须返回,哪怕右边没有匹配到的(没有匹配到的以NULL显示),需要使用DefaultIfEmpty();

var majors=from t in Teachers

                   join m in Majors 

                   on t equals m.Teacher into mt     --mt是IEnumerable<Major>

                   from result in mt.DefaultIfEmpty()  --再次from并调DefaultIfEmpty()方法

                   select new { teacher=result.Name,major=m?.Name??"没有课程" }; --null运算符


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM