1、从可枚举集合project指定的字段
使用Select方法,用lambda表达式来标识要project的字段。如:
var customerFirstNames=customers.Select(cust=>cust.FirstName);
或者使用from和select 查询操作符。如:
var customerFirstNames=from cust in customers select cust.FirstName;
2、筛选来自可枚举集合的
使用Where方法,用lambda表达式来指定行的匹配条件。如:
var usCompanies=addresses.Where(addr=>String.Equals(addr.Country,"United States")).Select(usComp=>usComp.CompanyName);
或者使用where查询操作符。如:
var usCompanies=from a in addresses where String.Equals(a.Country,"United States")
select a.CompanyName;
3、按特定顺序枚举数据
使用OrderBy方法,用lambda表达式来标识用于对行进行排序的字段。如:
var companyNames=addresses.OrderBy(addr=>addr.CompanyName).Select(comp=>comp.CompanyName);
或者使用orderby查询操作符。如:
var companyNames=from a in addresses orderby a.CompanyName select a.CompanyName;
4、根据一个字段的值对数据进行分组
使用GroupBy方法,用lambda表达式来标识用于对行进行分组的字段。如:
var companiesGroupedByCountry=addresses.GroupBy(addrs=>addrs.Country);
或者使用group by查询操作符。如:
var companiesGroupedByCountry=from a in addresses group a by a.Country;
5、联接两个不同集合中的数据
使用Join方法来指定要联接的集合,联接条件,以及结果字段。如:
var citiesAndCustomers=customers.Select(c=>new{c.FirstName,c.LastName,c.CompanyName}).Join(addresses,custs=>custs.CompanyName,addrs=>addrs.CompanyName,(custs,addrs)=>new{custs.FirstName,custs.LastName,addrs.Country});
或者使用join查询操作符。如:
var citiesAndCustomers=from a in addresses join c in customers on a.CompanyName equals c.CompanyName select new{c.FirstName,c.LastName,a.Country};
6、强迫立即生成LINQ查询结果
使用ToList或ToArray方法生成包含结果的列表或数组。如:
var allEmployees=from e in empTree.ToList<Employee>() select e;
//应该尽量使用其泛型方法;将数据缓存于内存中,因此无法查到最新的数据。