Linq 整理(一)

* 投影操作符:
Select && SelectMany 
SelectMany 操作符提供了将多个from子句组合起来的功能,它将每个对象的结果合并成单个序列
1)var query = from e in db.Employees
                       from o in e.Orders
                       select o;
2)var query = school.Classes.SelectMany(b => b.Students).Where(i => i.Sex == 0);
 
* 限制操作符:where
 
* 排序操作符:OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse
Enumerable.Reverse<TSource> 将会把序列中的元素按照从后到前的循序反转。需要注意的是,Reverse方法的返回值是void
var q = db.Employees.Select(e => e.FirstName).ToList();   
q.Reverse();
 
* 联接操作符:Join和GroupJoin (http://msdn.microsoft.com/zh-cn/library/bb397908.aspx
 
Join操作符:类似于T-SQL中的inner join (Joins two sequences based on key selector functions and extracts pairs of values.)
var query = from p in db.Products
                  join c in db.Categories on p.CategoryID equals c.CategoryID
                  where p.CategoryID == 1
                  select p;
var query = db.Products
                  .Join
                  (
                      db.Categories,
                      p => p.CategoryID,
                      c => c.CategoryID,
                      (p, c) => p
                  )
                  .Where(p => p.CategoryID == 1);
foreach (var item in query)
{
    Console.WriteLine(item.ProductName);
}
 
GroupJoin操作符:根据键选择器函数联接两个序列,并对每个元素的结果匹配项进行分组(Joins two sequences based on key selector functions and groups the resulting matches for each element.)
var query = from c in db.Categories
                  join p in db.Products on c.CategoryID equals p.CategoryID into r
                  select new
                  {
                      c.CategoryName,
                      Products = r
                  };
var query = db.Categories
                  .GroupJoin 
                  ( 
                      db.Products, 
                      c => c.CategoryID, 
                      p => p.CategoryID, 
                      (c, p) => new 
                      { 
                          c.CategoryName, 
                          Products = p 
                       } 
                    );
foreach (var item in query)
{
    Console.WriteLine("{0} =>", item.CategoryName);
    foreach (var p in item.Products)
    {
        Console.WriteLine(p.ProductName);
    }
    Console.WriteLine("----------------------------------------------");
}
 
* 分组操作符:GroupBy
 
* 串联操作符:Concat

转载于:https://www.cnblogs.com/clarkwei/p/4043099.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值