初涉Linq

namespace Linq
{
    public class Student
    {
        public int Id{get;set;}
        public string Name{get;set;}
        public int Age{get;set;}
    }

    class Program
    {
        

        static void Main(string[] args)
        {
            List<Student> studentlist = new List<Student>()
            {
                new Student(){
                Id=1,
                Name="卡卡西",
                Age=26
                },
                new Student(){
                Id=2,
                Name="鳴人",
                Age=18
                },
                new Student(){
                Id=3,
                Name="佐助",
                Age=32
                },
                new Student(){
                Id=4,
                Name="小李",
                Age=27
                },
                new Student(){
                Id=5,
                Name="綱手",
                Age=55
                },
                new Student(){
                Id=6,
                Name="我愛羅",
                Age=16
                }
            };

            {
                Console.WriteLine("**********Linq 進行查詢list裏面 年齡大於30歲的 並打印出來*********");
                var newlist = studentlist.Where(t => t.Age > 30);//陳述式
                foreach (var item in newlist)
                {
                    Console.WriteLine("{0}  {1}  {2}歲", item.Id, item.Name, item.Age);
                }
            }

            {
                Console.WriteLine("**********Linq 通過form進行查詢list裏面 年齡大於15歲的 並打印出來*********");
                var newlist = from s in studentlist
                              where s.Age > 15
                              select new
                              {
                                  IdAge = string.Format("{0}_{1}", s.Id, s.Age),
                                  Name = s.Name
                              };
                //
                //select s;

                foreach (var item in newlist)
                {
                    Console.WriteLine("{0}  {1}", item.IdAge, item.Name);
                }
            }

            {
                Console.WriteLine("**********Linq 進行查詢list裏面 年齡大於20歲的把ID和年齡合併一起打印出來 ID_年齡*********");
                var newlist = studentlist.Where(t => t.Age > 20)
                    .Select(t => new
                    {
                        IdAge = string.Format("{0}_{1}", t.Id, t.Age),
                        Name = t.Name
                    });

                foreach (var item in newlist)
                {
                    Console.WriteLine("{0}  {1}", item.IdAge, item.Name);
                }
            }

            {
                Console.WriteLine("**********Linq 進行查詢年齡從大到小排序 第三到第五人*********");
                var newlist = studentlist//.OrderBy(t => t.Age) //根據Age排序 從小到大
                                         .OrderByDescending(t => t.Age) //從大到小排序
                                         .Skip(2) //跳過前兩條
                                         .Take(3); //共獲取3條數據                 

                foreach (var item in newlist)
                {
                    Console.WriteLine("{0}  {1}  {2}歲", item.Id, item.Name, item.Age);
                }
            }
            {
                Console.WriteLine("*****大集合*******");
                var newlist = studentlist.Where(t => t.Age > 10 && t.Id < 20) //查詢年齡大於10並且ID小於20的
                    .OrderBy(t => t.Age)//按照年齡排序 從小到大
                    .Skip(1)//跳過第一條
                    .Take(3)//獲取3條
                    .Select(t => new//投影成一個新類
                    {
                        StudentId = t.Id,
                        StudentName = t.Name,
                        StudentAge = t.Age
                    });
                foreach (var item in newlist)
                {
                    Console.WriteLine("{0}  {1}  {2}歲", item.StudentId, item.StudentName, item.StudentAge);
                }
            }
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章