提示:如有错误,请不吝指出
文章目录
注意
注意:
- 1、在下面示例中的new{}表示的是返回两个或以上数据
- 2、Select(cust=>cust) 表示返回整行,而不是只投射特定的列
- 3、无论使用LINQ扩展方法还是查询操作符,当这些在执行的时候,应用程序并不真正构建集合;只有在遍历集合时才会对集合进行枚举,即最终获取到的始终是最新数据
- =推迟求值策略= 例如,从定义集合到遍历集合,再次期间如果更改address中的数据,就会看到最新的数据。
- 4、使用ToList方法构建静态List对象以包含数据的缓存拷贝
- 在定义LINQ查询是强制求值,生成一个静态的缓存的集合,该集合是原始数据的拷贝,如果原始集合中的数据发生改变,该拷贝中的数据不会发生改变
* eg:…from a in address.ToList() select a.CompanyName;
- 在定义LINQ查询是强制求值,生成一个静态的缓存的集合,该集合是原始数据的拷贝,如果原始集合中的数据发生改变,该拷贝中的数据不会发生改变
一、首先声明两个示例集合
var customers = new[]
{
new {
CustomerID=1,FirstName="Kinm",LastName="AberCrim",CompanyName="Alpine"},
new {
CustomerID=2,FirstName="Jeff",LastName="Hay",CompanyName="Coho"},
new {
CustomerID=3,FirstName="Charlie",LastName="Herb",CompanyName="House"}
};
var address = new[] {
new {
CompanyName="Alpine",City="Berne",Country="Land"},
new {
CompanyName="A",City="B",Country="Land"},
new {
CompanyName="Coho",City="San",Country="US"},
new {
CompanyName="Trey",City="Microsoft",Country="London"}
};
二、LINQ多种操作方法
1.Select方法返回基于某具体类型的可枚举集合(指定的所有数据)
Select其实是IEnumerable类的扩展方法,IEnumerable类System.Linq命名空间;在该命名空间中可以查看Enumerable.Select方法定义
IEnumerable<string> customerFirstNames = customers.Select(cust => cust.FirstName);