Linq有很多值得学习的地方,这里我们主要介绍Linq Select子句,包括介绍Linq Select子句指定所返回元素的形式和内容等方面。
选择数据(SELECT)
Linq Select子句指定所返回元素的形式和内容。若要检索包含整个数据源对象的集合,请选择范围变量本身。若要从数据源中选择多个字段,您可以使用两种方法:
1、在Linq Select子句中,指定要包含在结果中的字段。编译器将定义一个匿名类型,该类型将这些字段作为其属性。如:
- Dim londonCusts4 = From cust In customers _
- Where cust.City = "London" _
- Order By cust.Name Ascending _
- Select Name = cust.Name, Phone = cust.Phone
2、定义含有您要包括在结果中的特定字段的命名类型,并在Linq Select子句中创建和初始化该类型的实例。仅当您必须在返回各个结果的集合以外使用这些结果,或者必须将这些结果作为参数传入方法调用时,才使用此选项。
- 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子句确定查询的返回值。例如:
- Dim customerList = From cust In customers, ord In cust.Orders _
- Select Name = cust.CompanyName
- //引入新范围变量
- Total = ord.Total, ord.OrderID _
- //引入新范围变量
- Where Total > 500 _
- //后续子句使用新的范围比例
- Select Name, OrderID
【编辑推荐】