第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;
}

}

  

  

原文地址:https://www.cnblogs.com/wjs5943283/p/4608988.html