LINQ詳細的介紹
阿新 • • 發佈:2020-08-05
基礎資料搞一下
//先定義一個類
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 insmlist) { 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);