基础数据搞一下
//先定义一个类
public class StudentModel { public int index { get; set; } public string Name { get; set; } public string Sex { get; set; } }
//存一点测试数据
List<StudentModel> modes = new List<StudentModel>();
modes.Add(new StudentModel() { index=1, Name="a", Sex="女"}); modes.Add(new StudentModel() { index = 2, Name = "b", Sex = "女" }); modes.Add(new StudentModel() { index = 3, Name = "c", Sex = "男" }); modes.Add(new StudentModel() { index = 4, Name = "d", Sex = "女" }); modes.Add(new StudentModel() { index = 5, Name = "e", Sex = "男" }); modes.Add(new StudentModel() { index = 5, Name = "f", Sex = "0.5" }); modes.Add(new StudentModel() { index = 5, Name = "g", Sex = "0.5" });
Linq--where
//单条件查询
var smlist = modes.Where(a => a.Sex == "男").ToList(); foreach(StudentModel sm in smlist) { Console.WriteLine(sm.Name+":"+sm.Sex); }
//多条件查询或者 var smlist1 = modes.Where(a => a.Sex == "男" || a.Sex.Contains("0.5")).ToList(); foreach (StudentModel sm in smlist1) { Console.WriteLine(sm.Name + ":" + sm.Sex); }
//多条件查询并且 var smlist2 = modes.Where(a => a.Name == "f" && a.Sex.Contains("0.5")).ToList(); foreach (StudentModel sm in smlist2) { Console.WriteLine(sm.Name + ":" + sm.Sex); }
//返回列表正序排列OrderBy,倒序排列OrderByDescending var smlist3 = modes.Where(a => a.Sex == "男").OrderBy(a=>a.Name).ToList(); foreach (StudentModel sm in smlist3) { Console.WriteLine(sm.Name + ":" + sm.Sex); }
//distinct去重 var smlist3 = modes.Where(a => a.Sex == "男").OrderBy(a=>a.Name).ToList().Distinct(); foreach (StudentModel sm in smlist3) { Console.WriteLine(sm.Name + ":" + sm.Sex); }
在这我说几句:以上意思就是 取出sex字段为 ‘男’并且排序,形成列表后在进行排序。
像distinct 这种操作可以自由的跟你你的需求去使用,到底是先排序再去重啊,还是先去重再排序啊,完全根据你的需求。
//返回满足条件的第一个结果first,最后一个last var smlist3 = modes.Where(a => a.Sex == "男").First(); Console.WriteLine(smlist3.Name + ":" + smlist3.Sex);
原文:https://www.cnblogs.com/hanke123/p/13439157.html