.NET中那些所谓的新语法之四:标准查询运算符与LINQ

作者:武汉味美食家餐饮管理有限公司 来源:www.cj17917.com 发布时间:2017-09-05 12:08:09
.NET中那些所谓的新语法之四:标准查询运算符与LINQ

这一篇我们继续征程,看看标准查询运算符和LINQ。标准查询运算符是定义在System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法,而LINQ则是一种类似于SQL风格的查询表达式,它们可以大大方便我们的日常开发工作。因此,需要我们予以关注起来!

/* 新语法索引 */

1.自动属性 Auto-Implemented Properties

2.隐式类型 var

3.参数默认值 和 命名参数

4.对象初始化器 与 集合初始化器 { }

5.匿名类 & 匿名方法

6.扩展方法

7.系统内置委托 Func / Action

8.Lambda表达式

9.标准查询运算符 Standard Query Operator

10.LINQ查询表达式

一、扩展方法哪家强?标准查询运算符

  标准查询运算符提供了包括筛选、投影、聚合、排序等功能在内的查询功能,其本质是定义在System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法。

  从上图可以看出,在Enumerable类中提供了很多的扩展方法,这里我们选择其中几个最常用的方法来作一点介绍,使我们能更好地利用它们。首先,我们需要一点数据来进行演示:

复制代码

public class Person

{

public int ID { get; set; }

public string Name { get; set; }

public int Age { get; set; }

public bool Gender { get; set; }

public override string ToString()

{

return string.Format("{0}-{1}-{2}-{3}", ID, Name, Age,

Gender == true ? "男" : "女");

}

}

public class LitePerson

{

public string Name { get; set; }

public override string ToString()

{

return Name;

}

}

public class Children

{

public int ChildID { get; set; }

public int ParentID { get; set; }

public string ChildName { get; set; }

public override string ToString()

{

return string.Format("{0}-{1}-{2}", ChildID, ChildName, ParentID);

}

}

static List<Person> GetPersonList()

{

List<Person> personList = new List<Person>()

{

new Person(){ID=1,Name="Edison Chou",Age=25,Gender=true},

new Person(){ID=2,Name="Edwin Chan",Age=20,Gender=true},

new Person(){ID=3,Name="Jackie Chan",Age=40,Gender=true},

new Person(){ID=4,Name="Andy Lau",Age=55,Gender=true},

new Person(){ID=5,Name="Kelly Chan",Age=45,Gender=false}

};

return personList;

}

static List<Children> GetChildrenList()

{

List<Children> childrenList = new List<Children>()

{

new Children(){ChildID=1,ParentID=1,ChildName="Lucas"},

new Children(){ChildID=2,ParentID=1,ChildName="Louise"},

new Children(){ChildID=3,ParentID=3,ChildName="Edward"},

new Children(){ChildID=4,ParentID=4,ChildName="Kevin"},

new Children(){ChildID=5,ParentID=5,ChildName="Mike"}

};

return childrenList;

}

static List<Person> GetMorePersonList()

{

List<Person> personList = new List<Person>()

{

new Person(){ID=1,Name="爱迪生",Age=100,Gender=true},

new Person(){ID=2,Name="瓦特",Age=120,Gender=true},

new Person(){ID=3,Name="牛顿",Age =150,Gender=true},

new Person(){ID=4,Name="图灵",Age=145,Gender=true},

new Person(){ID=5,Name="香农",Age=120,Gender=true},

new Person(){ID=6,Name="居里夫人",Age=115,Gender=false},

new Person(){ID=6,Name="居里夫人2",Age=115,Gender=false},

new Person(){ID=7,Name="居里夫人3",Age=115,Gender=false},

new Person(){ID=8,Name="居里夫人4",Age=115,Gender=false},

new Person(){ID=9,Name="居里夫人5",Age=115,Gender=false},

new Person(){ID=10,Name="居里夫人6",Age=115,Gender=false},

new Person(){ID=11,Name="居里夫人7",Age=115,Gender=false},

new Person(){ID=12,Name="居里夫人8",Age=115,Gender=false},

new Person(){ID=13,Name="居里夫人9",Age=115,Gender=false},

new Person(){ID=14,Name="居里夫人10",Age=115,Gender=false},

new Person(){ID=15,Name="居里夫人11",Age=115,Gender=false},

new Person(){ID=16,Name="居里夫人12",Age=115,Gender=false},

new Person(){ID=17,Name="居里夫人13",Age=115,Gender=false},

new Person(){ID=18,Name="居里夫人14",Age=115,Gender=false}

};

return personList;

}

复制代码

1.1 筛选高手Where方法

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:仙桃网站建设 http://xiantao.45qun.com

  • 上一篇:[Leetcode]Palindrome Partitioning II
  • 下一篇:最后一页
  • 
    COPYRIGHT © 2015 武汉味美食家餐饮管理有限公司 ALL RIGHTS RESERVED.
    本站所有原创信息,未经许可请勿任意转载或复制使用 网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100