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运算符