zoukankan      html  css  js  c++  java
  • 第4章 基本语言特性 笔记

    注:View方法的有一个重载:接收两个string类型的参数,接收一个string类型和一个object类型的参数(强制类型(object))。

      IQueryable<T>接口派生于IEnumerable<T>,用来表示对一个特定数据源执行查询结果。

      重点知识:

        1.LINQ扩展方法中延迟(Deferred)执行的有:

          OrderBy/OrderByDescending

          Reverse

          Select

          SelectMany

          Skip/SkipWhile

          Take/TakeWhile

          Where

        除以上外,其他扩展方法均立即执行。延迟LINQ扩展方法引起的一个有趣的特性是:每次对结果进行枚举时,都会从头开始求取查询的结果。即,随着数据的变化,用户可以反复的执行查询。

        2.使用IQueryable<T>时,说明处理的来自于数据库的数据。 

    LINQ扩展方法

    扩展方法 描述 延期
    All 如果源数据中的所有条目都与谓词匹配,则返回true  否
    Any 如果源数据中至少有一条目与谓词匹配,则返回true  否
    Contains 如果数据源含有指定的条目或值时,则返回true  否
    Count 返回数据源中的条目数  否 
    First 返回数据源中的第一个条目  否 
    FirstOrDefault 返回数据源中的第一个条目或无条目时,返回默认值  否 
    Last 返回数据源中的最后一个条目  否 
    LastOrDefault 返回数据源中的最后一个条目或无条目时,返回默认值  否 

    Max

    Min

    返回由lambda表达式表示的最大值或最小值  否 

    OrderBy

    OrderByDescending

    基于lambda表达式返回的值对源数据进行排序  是
    Reverse  反转数据源中数据的顺序  是 
    Select  设计一个查询结果  是 
    SelectMany 把每个数据项投射到一个条目序列中,然后把所有结果序列连接成一个序列   是 
    Single 返回数据源的第一个条目或多个匹配时,抛出异常   否 
    SingleOrDefault  返回数据源的第一个条目或无条目时,返回默认值;或多个匹配时,抛出异常   否 

    Skip

    SkipWhile

     跳过指定数目的元素或当谓词匹配时跳过  是
    Sum 对谓词选定的值求和   否 

    Take

    TakeWhile

    从数据源的开始选择指定条目的元素或当谓词匹配时,选择条目  是

    ToArray

    ToDictionary

    ToList

    把数据源转换成数组或其它集合类型   否
    Where 过滤掉源数据中与谓词不匹配的条目   是

     

    -------------------------------------------------------------------------------------------------------

    1.自动属性: 

    public class Product{
         public string Name{get;set;} // 自动属性      
    }

    2.对象初始化器:

    Product myProduct=new Product
    {
        Id=100,Name="kaid",Price=275M
    };

    3.扩展方法:给那些不是你定义或拥有的类添加方法。

        1.this关键字 (this ShoppingCart cartParam)

        2.静态类

        3.静态方法

        4.只能使用有权访问的类成员

    public class ShoppintCart{
        public List<Product> Products{get;set;}
    }
    public static class MyExtensionMethods{
        public static decimal TotalPrices(this ShoppingCart cartParam){
    
            decimal total=0;
            foreach(Product  prod in cartParam.Products){
                total+=prod.Price;
            }
            return total;
         }
    }    

       接口扩展:

      IEnumerable<Product>

    public static class MyExtensionMethods{
        public static decimal TotalPrices(this IEnumerable<product> cartParam){
    
            decimal total=0;
            foreach(Product  prod in cartParam){
                total+=prod.Price;
            }
            return total;
         }
    } 

    4.Async方法

      运用async和await关键字:  

    public class MyAsyncMethod{
    
        public async static Task<Long?> GetPagelength(){
           HttpClient client=new HttpClient();
           var httpMessage=await client.GetAsync("htttp://appress.com");//表示要等待GetAsync方法所返回的Task的结果,并继续执行同一方法中的其他语句。
          //todo:等待过程中,可做其他事情

    return httpMessage.Content.Headers.ContentLength;
    }

    }

      

      

  • 相关阅读:
    如何设计一个百万级用户的抽奖系统?
    服务注册发现
    消息列队7
    消息列队6
    bzoj 4771: 七彩树
    [SDOI2013]刺客信条
    bzoj 5291: [Bjoi2018]链上二次求和
    51nod 1245 Binomial Coefficients Revenge
    bzoj 5308: [Zjoi2018]胖
    bzoj 5294: [Bjoi2018]二进制
  • 原文地址:https://www.cnblogs.com/wjs5943283/p/4608988.html
Copyright © 2011-2022 走看看