LINQ (Language Integrated Query)
查询语法 & 查询方法
查询语法:不能省略最后的select;查询方法:设计到Lambda表达式,全部返回 可以省略最后的select 延迟加载。
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
//使用集合初始化器给集合赋值
List<Employees> emp = new List<Employees>
{
new Employees(){Id=Guid.NewGuid(),Name="C",Sex=0,CompanyName="xx技术有限公司"},
new Employees(){Id=Guid.NewGuid(),Name="Java",Sex=0,CompanyName="xx培训"},
new Employees(){Id=Guid.NewGuid(),Name="Python",Sex=0,CompanyName="xx集团"}
};
//查询语法:不能省略最后的select
var query = (from p in emp where p.Name.StartsWith("C") select p).FirstOrDefault();
//查询方法:设计到Lambda表达式,全部返回 可以省略最后的select 延迟加载
var query1 = emp.Where(p => p.Name.StartsWith("C")).Select(e => new { e.Name,e.CompanyName});
foreach (var item in query1)
{
Console.WriteLine(item.Name);
}
//查询方法
var query2 = emp.Where(p => p.Name.StartsWith("C")).Select(p => p.CompanyName);
foreach (var item in query2)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
public class Employees
{
public Guid Id { get; set; }
public string Name { get; set; }
public int Sex { get; set; }
public string CompanyName { get; set; }
}
}
Select & Selectmany
- Select:用于将集合中的数据整合成一个新数组
- Selectmany:用于将集合中的子集合全部合为一个
query syntax 查询语法 & method syntax 方法语法
- As a rule when you write LINQ queries, we recommend that you use query syntax whenever possible and method syntax whenever necessary.
-
Some query operations, such as Count or Max, have no equivalent query expression clause and must therefore be expressed as a method call.
int highScoreCount = ( from score in scores where score > 80 select score ).Count(); var matchedWorkAreas = from workArea in this.WorkAreas from workAreaOrigin in recipeOrigin.WorkAreas where (workArea.Guid == workAreaOrigin.Guid) select (workArea, workAreaOrigin);