适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。spa
说明:链接不一样的集合,不会自动过滤相同项;延迟。code
var q = ( from c in db.Customers select c.Phone ).Concat( from c in db.Customers select c.Fax ).Concat( from e in db.Employees select e.HomePhone );
语句描述:返回全部消费者和雇员的电话和传真。blog
var q = ( from c in db.Customers select new { Name = c.CompanyName, c.Phone } ).Concat( from e in db.Employees select new { Name = e.FirstName + " " + e.LastName, Phone = e.HomePhone } );
语句描述:返回全部消费者和雇员的姓名和电话。io
说明:链接不一样的集合,自动过滤相同项;延迟。便是将两个集合进行合并操做,过滤相同的项。ast
var q = ( from c in db.Customers select c.Country ).Union( from e in db.Employees select e.Country );
语句描述:查询顾客和职员所在的国家。class
说明:取相交项;延迟。便是获取不一样集合的相同项(交集)。即先遍历第一个集合,找出全部惟一的元素,而后遍历第二个集合,并将每一个元素与前面找出的元素做对比,返回全部在两个集合内都出现的元素。select
var q = ( from c in db.Customers select c.Country ).Intersect( from e in db.Employees select e.Country );
语句描述:查询顾客和职员同在的国家。遍历
说明:排除相交项;延迟。便是从某集合中删除与另外一个集合中相同的项。先遍历第一个集合,找出全部惟一的元素,而后再遍历第二个集合,返回第二个集合中全部未出如今前面所得元素集合中的元素。nio
var q = ( from c in db.Customers select c.Country ).Except( from e in db.Employees select e.Country );
语句描述:查询顾客和职员不一样的国家。查询