程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#知識體系(一) --- 常用的LInq 與lambda表達式

C#知識體系(一) --- 常用的LInq 與lambda表達式

編輯:C#入門知識

C#知識體系(一) --- 常用的LInq 與lambda表達式


LinQ是我們常用的技術之一。因為我們繞不開的要對數據進行一系列的調整,如 排序、 條件篩選、求和、分組、多表聯接 等等。   lambda則是我們常用的語法糖,配合linq使用天衣無縫,不知不覺就用上了,主要還是看著代碼簡潔,逼格夠高。。。   接下來我們就來看看常用的有哪些       先來點基礎數據    
    //用戶類
   public class User
    {
      [DataMember]
        public int ID { get; set; }
       [DataMember]
        public string Name { get; set; }
       [DataMember]
        public string Address { get; set; }
       [DataMember]
        public string Phone { get; set; }
       [DataMember]
        public string Sex { get; set; }

        [DataMember]
        public int Age { get; set; }
        [DataMember]
        public int SchID { get; set; }
    }
 
 /// <summary>
    /// 學校類
    /// </summary>
    internal class School {
        public int SchID { get; set; }
        public string SchName { get; set; }
       public School(){}
       public School(int id,string name) 
       {
           SchID = id;
           SchName = name;
       }
    }
    /// <summary>
    /// 公司類
    /// </summary>
    internal class Company {
        public string Name { get; set; }
       public List<User> Users { get; set; }
       public Company() { }
       public Company(string name, List<User> list)
       {
           Name = name;
           Users = list;
       }
    }
 

 

  接下來初始化點測試數據    
   User user1 = new User()
            {
                ID = 111,
                Name = "張一",
                Address = "上海市某某區",
                Phone = "13547878787",
                Age = 30,
                Sex = "男",
                SchID=1
            };
            User user2 = new User()
            {
                ID = 112,
                Name = "李小二",
                Address = "上海市某某區",
                Phone = "13547878783",
                Age = 30,
                Sex = "女",
                SchID = 1
            };
            User user3 = new User()
            {
                ID = 113,
                Name = "張三",
                Address = "上海市某某區",
                Phone = "13547878784",
                Age = 30,
                Sex = "男",
                SchID = 1
            };
            User user4 = new User()
            {
                ID = 114,
                Name = "李四",
                Address = "上海市某某區",
                Phone = "13547878785",
                Age = 30,
                Sex = "男",
                SchID = 1
            };
            List<User> userlist = new List<User>(4) { user1, user2, user3, user4 };
List<School> Schlist = new List<School>() {
new School(1,"武漢大學"),new School(2,"華中科技大學"),new School(3,"華中師范大學")
};

 

 

  統計(求和)Sum  
  //求和
            var sum = userlist.Where(a => { return a.ID > 0; }).Sum(a=>a.ID);
            Console.WriteLine(sum);
//另一種寫法
  sum =(from a in userlist where a.ID>0 select a.ID ).Sum();
            Console.WriteLine(sum);
 IEnumerable.Where()方法裡面的參數數委托類型Func<TSource, bool> 前面為參數 最後面一個為返回值

 

  求最大最小值 Max Min     //求最大值             var max = userlist.Max(a => a.ID);             Console.WriteLine(max);             //最小值             var min = userlist.Min(a => a.ID);             Console.WriteLine(min);       循環 ForEach      
 //循環輸出
            userlist.ForEach(a =>
            {
                if (a.Age > 20)
                {
                    Console.WriteLine(a.ID);
                }

            });
 

 

    條件篩選 where   //篩選             var user = userlist.Where(a => a.ID == 114).Single();             //篩選所有男性用戶             var templist = userlist.Where(a => a.Sex == "男").ToList(); 排序  //排序  根據ID逆序             templist = userlist.OrderByDescending(a => a.ID).ToList();             //升序             templist = userlist.OrderBy(a => a.ID).ToList(); 分組 ToLookup 和 GroupBy  
 //分組
           var lookup = userlist.ToLookup(a => a.Sex);
           foreach (var item in lookup)
           {
               Console.WriteLine(item.Key);
               foreach (var sub in item)
               {
                   Console.WriteLine("\t\t"+sub.Name+" "+sub.Age);
               }
           }
            //另一種
         var dic =  userlist.GroupBy(a => a.Sex);
         foreach (var item in dic)
           {
               Console.WriteLine(item.Key);
               foreach (var sub in item)
               {
                   Console.WriteLine("\t\t" + sub.Name + " " + sub.Age);
               }
           }

 

             

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved