1. 程式人生 > 實用技巧 >LINQ詳細的介紹

LINQ詳細的介紹

基礎資料搞一下

//先定義一個類
 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);