使用join对两个集合进行连接操作
1. 对于集合dataSource1和dataSource2进行普通的连接操作
var query =from element1 in dataSource1 join element2 in dataSource2 on exp1 equals exp2 select new { };
此时join相当于sql语句中的 join|inner join
我把它解读为从集合1中取出元素1,集合2中的元素2,通过对比条件exp1、exp2,找到符合条件的元素,组合成新的集合赋值给查询结果query。
2. 对于集合dataSource1和dataSource2进行左连接操作
var query = from element1 in dataSource1 join element2 in dataSource2 on exp1 equals exp2 into val2grp from grp in val2grp.DefaultIfEmpty() select new { };
使用DefaultIfEmpty(),后join相当于sql语句中的 left join
我把它解读为从集合1中取出元素1,集合2中的元素2,通过对比条件exp1、exp2,找到符合条件的元素,添加到分组val2grp中,使用DefaultIfEmpty() 来提示,如果元素为空,则存入默认值,最终组合成新的集合赋值给查询结果query。
取集合的前N条数据
例如集合为dataSource1,要取它的前10条数据:dataSource1.Take(10),即可
成本2h40'
网友评论