1、 方法语法
2、 查询语法
public class student
{
public string username { get; set; }
public int age { get; set; }
public string sex { get; set; }
public IList<student> GetStu(int n)
{
IList<student> stuList = new List<student>();
for (int i = 0; i < n; i++)
{
student stu = new student();
stu.age = 25 + i;
stu.sex = "男" + i;
stu.username = "张三" + i;
stuList.Add(stu);
}
return stuList;
}
那么这个方法返回的就是一个list集合,下面我们就可以通过linq对这个集合进行操作
首先我们来查询所有的学生
A、查询语法:
var list = GetStu(10);
var result = from s in list
select new { stuname=s.username,sex=s.sex,age=s.age};
这是linq常用的语法from 变量 in 集合
Select 变量
B、方法语法
var result1 = list.Select(s1 => new { username = s1.username, age = s1.age, sex = s1.sex });
这就是方法语法,符合一般的C#语法
这两种方法的执行结果是一样的,唯一的区别就是语法
二、输出的方式
输出的方式也有两种,我们知道linq主要对集合进行操作的,所以一般都需要循环输出
第一种输出方式:
string stt = null;
foreach (var sa in result3)
{
stt += sa.username;
}
Response.Write(stt);
这是我们经常用到的foreach循环
第二种输出方式:
result.ToList().ForEach(s => { Response.Write(s.stuname+s.sex+s.age); });
这种方式很简介,直接调用ForEach方法,方法体内是一个limba表达式
另外说明下ToList()方法作用,在linq中有种延迟执行,就是当我们在from…select时候,返回的结果并没有执行,当我们循环调用的时候才执行,这就是延迟执行,有时候为了立即执行,我们需要用到ToList()
三、下面就来简单说说linq常用的几种查询
1、条件选择查询(where)
比如我们要查询年龄大于26的学生,可以这样写
var result = from s in list
where s.age>26 //条件查询
select s.username;
或者这样写
var result2 = list.Where(s => s.age > 25); //条件查询
2、 查询排序
var result = from s in list
orderby s.age descending //排序
where s.age>26 //条件查询
3、 数据查询分页显示
var list1 = GetList(50);
for (int i = 0; i < 5; i++)
{
Response.Write("这是第" + (i + 1) + "页");
var result = from s in list.Skip(i * 10).Take(10)
select s;
result.ToList().ForEach(s => { Response.Write(s); });
var result1 = from r in list1
select r;
result1.Single()
上面只是简单的介绍了下linq的用法,具体项目中用到了,在具体对待
下载:/Files/shuang121/linq的基本操作.doc
linq to sql操作