用linq方法进行查询。在此简单定义一个类M里面含有多个属性,其中name和age为其中的两个属性。
{ public int name { get;set;} public int age { get; set; } public int score { get; set; } public int id { get; set; } }
定义一个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 }, };
下面采用linq方法对其进行查询,查询mlist中name>5且score==100的类,并按照age的大小进行排序;
}; var newlist = from m in Mlist where m.name > 5 && m.score == 100 orderby m.age select m;
也可以采用where方法
var newlist = Mlist.Where(m => m.name > 5 && m.score == 100).OrderBy(m=>m.age);
实际都会选择where方法进行处理
我们把上面语句改动如下:
var list1 = Mlist.Where(m => m.name > 2 && m.score == 100).OrderBy(m => m.age).Select(m => m.name).ToList();
则list只是name的集合,所以在此顺便说一下where和select,where选择是选择list中的对象,根据相应条件生成一个新的list,新list的成员仍为原类型,而select则是把选择的成员生成新的list,如语句中m.name,即新集合中成员为name的类型。