Linq Select子句全面总结

Linq有很多值得学习的地方,这里我们主要介绍Linq Select子句,包括介绍Linq Select子句指定所返回元素的形式和内容等方面。

选择数据(SELECT)

Linq Select子句指定所返回元素的形式和内容。若要检索包含整个数据源对象的集合,请选择范围变量本身。若要从数据源中选择多个字段,您可以使用两种方法:

1、在Linq Select子句中,指定要包含在结果中的字段。编译器将定义一个匿名类型,该类型将这些字段作为其属性。如:

 
 
 
  1. Dim londonCusts4 = From cust In customers _  
  2. Where cust.City = "London" _  
  3. Order By cust.Name Ascending _  
  4. Select Name = cust.Name, Phone = cust.Phone 

2、定义含有您要包括在结果中的特定字段的命名类型,并在Linq Select子句中创建和初始化该类型的实例。仅当您必须在返回各个结果的集合以外使用这些结果,或者必须将这些结果作为参数传入方法调用时,才使用此选项。

 
 
 
  1. Dim londonCusts5 = From cust In customers _ Select New NamePhone With 
    {
    .Name = cust.Name, _.Phone = cust.Phone

如果未指定Linq Select子句,查询将根据为当前范围变量的所有成员返回一个类型。

Linq Select子句可以引用当前范围中的任何变量,包括在 From 子句中标识的范围变量,由 Aggregate、Let、Group By 或 Group Join 子句通过别名创建的任何新变量或查询表达式中之前的Linq Select子句创建的变量。Linq Select子句还可以包含静态值。

Linq Select子句可为后续的其他子句子句引入一组新的范围变量,而之前的范围变量不再位于范围中,查询表达式中的***一个Linq Select子句确定查询的返回值。例如:

 
 
 
  1. Dim customerList = From cust In customers, ord In cust.Orders _  
  2. Select Name = cust.CompanyName  
  3. //引入新范围变量  
  4. Total = ord.Total, ord.OrderID _  
  5. //引入新范围变量  
  6. Where Total > 500 _  
  7. //后续子句使用新的范围比例  
  8. Select Name, OrderID 

【编辑推荐】

  1. Linq表达式树简单介绍
  2. Linq和dLinq区别剖析
  3. Lambda表达式和Linq查询浅析
  4. Linq Lambda表达式概括
  5. Linq查询本质简单分析
THE END