------------- Windows phone 手机开发 、ASP .NET培训、期待与您交流!----------------
微软在.NET Framework 3.5中提供了LINQ(Language Integrated Query)语言集成查询。它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、 静态类型等强类型语言的好处。
那么我们怎么用呢?他的语法和我们写SQL 语句很类似,却有不一样。
下面我们来一起学习,
这里仅为测试学习,所以在控制台程序中测试,
首先,我们创建一个Person 类, 并且添加一些属性:
- class Person
- {
- private string _name;
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
- private int _age;
- public int Age
- {
- get { return _age; }
- set { _age = value; }
- }
- private string _gender;
- public string Gender
- {
- get { return _gender; }
- set { _gender = value; }
- }
- }
复制代码 然后,我们新写一个方法,用来造一些测试数据,
如下所示:
- private static List<Person> CreateList()
- {
- List<Person> list = new List<Person>();
- list.Add(new Person() { Name = "姚羽", Age = 25, Gender = "男" });
- list.Add(new Person() { Name = "边兵兵", Age = 18, Gender = "男" });
- list.Add(new Person() { Name = "传智播客", Age = 5, Gender = "非男非女" });
- list.Add(new Person() { Name = "黑马", Age = 1, Gender = "非男非女" });
- list.Add(new Person() { Name = "刘德华", Age = 45, Gender = "男" });
- list.Add(new Person() { Name = "林志玲", Age = 35, Gender = "女" });
- return list;
- }
复制代码 好了,前面的准备工作OK了,
我们简单看一下造好的数据是啥样的,这里因为是控制台程序,我们就采用调试的办法看一下数据,呵呵
根据调试的即时窗口,我们看到了插入的6条数据全部有了。
下面开始我们linq学习。
学习一:
普通的查询学习
- static void Main(string[] args)
- {
- List<Person> tempList = CreateList();
- var male = from p in tempList
- select p;
- foreach (Person item in male.ToList())
- {
- Console.WriteLine(item.Name + "|" + item.Gender + "|" + item.Age);
- }
- Console.ReadKey();
- }
复制代码
如上所示,我们在main函数中的代码段
var male = from p in tempList
select p;
这段语句就类似于我们在SQL Server中的 select * from tempList
下面我们简单的讲数据在控制台中展示一下,每条数据的字段之间用“|”隔开,
运行结果为:
很显然,这个时候我们拿到了所有的数据。
学习二:
带条件的linq查询
- var male = from p in tempList
- where p.Gender == "女"
- select p;
复制代码 查询性别为“女”的数据,结果是只有林志玲一条
查询性别为“非男非女”且岁数为5岁的数据, 如果在SQL Server中则为: Select * from tempList Where Gender=' 非男非女' and Age = 5
- var male = from p in tempList
- where p.Gender == "非男非女" && p.Age == 5
- select p;
复制代码
如上图中的结果,就不多解释。
学习三:
查询返回结果中含有类似于C#聚合函数Count/Sum/Min/Max/Avg的例子
- List<Person> tempList = CreateList();
- var male = (from p in tempList
- select p.Age).Max();
复制代码 其实类似这样的还有很多,这里我也是初学,网上看见的说还有什么
匿名类型,
Join和Order By,
Lambda表达式和Lambda表达式树
等等,
大家一起去学习和研究吧
------------- Windows phone 手机开发 、ASP .NET培训、期待与您交流!----------------
该贴已经同步到 yy312232557的微博 |