前言
通过定义一个类m,以及一个m类的list来说明linq用法。
1.m类
public class m
{
public int name { get;set;}
public int age { get; set; }
public int score { get; set; }
public int id { get; set; }
}
2.定义一个list
var Mlist = new List<m>
{
new test.m() {name =3,age=12,score=100,id=11 },
new test.m() {name =7,age=13,score=99,id=11 },
new test.m() {name =9,age=15,score=97,id=11 },
new test.m() {name =5,age=17,score=100,id=11 },
new test.m() {name =6,age=11,score=100,id=11 },
};
3.查询
3.1 基本查询方法
查询mlist中name>5且score==100的类,并按照age的大小进行排序
var newlist = from m in Mlist
where m.name > 5 && m.score == 100
orderby m.age
select m;
3.2 where方法
var newlist = Mlist.Where(m => m.name > 5 && m.score == 100).OrderBy(m=>m.age);
3.3 ToList使用
上述中newlist为m的集合,而本节list1只是name的集合,所以在此顺便说一下where和select,where选择是选择list中的对象,根据相应条件生成一个新的list,新list的成员仍为原类型,而select则是把选择的成员生成新的list,如语句中m.name,即新集合中成员为name的类型。
var list1 = Mlist.Where(m => m.name > 2 && m.score == 100).OrderBy(m => m.age).Select(m => m.name).ToList();