Lambda基本语法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LibraryLearn1
{
    public class Class1
    {
        static List<Dog> list_dog = new List<Dog>() { 
            new Dog{ID=1,Name="小黑",Age=3,Gender=true},
            new Dog{ID=2,Name="小花",Age=2,Gender=false},
            new Dog{ID=3,Name="小白",Age=3,Gender=true},
            new Dog{ID=4,Name="小黄",Age=6,Gender=false},
            new Dog{ID=5,Name="小蓝",Age=5,Gender=true},
            new Dog{ID=6,Name="小灰",Age=8,Gender=false}
        };
        static List<DogToy> list_dogtoy = new List<DogToy>()
        {
            new DogToy{ID=1,Name="小黑",ID_Dog=1},
            new DogToy{ID=2,Name="小花",ID_Dog=2},
            new DogToy{ID=1,Name="小白",ID_Dog=2},
            new DogToy{ID=2,Name="小黄",ID_Dog=3},
            new DogToy{ID=1,Name="小蓝",ID_Dog=3},
            new DogToy{ID=2,Name="小灰",ID_Dog=2}

        };

        //筛选集合Where需要提供一个带bool返回值的“筛选器”,从而表明集合中某个元素是否应该被返回。
        public void whereLambda()
        {
            List<Dog> list_result = list_dog.Where(c => c.Gender == false && c.Age > 4).ToList();
        }
        //查询投射,返回新对象集合 IEnumerable<TSource> Select()
        public void selectLambda()
        {
            List<SmallDog> list = list_dog.Where(c => c.Gender == false && c.Age > 4).Select(c => new SmallDog { Name = c.Name }).ToList();
        }
        //多条件排序 OrderBy().ThenBy().ThenBy()
        public void orderLambda()
        {
            List<Dog> list_order = list_dog.OrderBy(c => c.ID).ThenByDescending(c => c.Age).ToList();
        }
        //集合连接 Join()
        public void joinLambda()
        {
            var list_join = list_dog.Join(list_dogtoy, d => d.ID, dt => dt.ID_Dog, (d, dt) => new { DogName = d.Name, DogToyName = dt.Name }).ToList();
            list_join.ForEach(c => Console.Write(c.ToString()));//匿名类tostring()把所有的对象相加
        }

        //gropu by 分组
        public void groupbyLamdbda()
        {
           var list_group= list_dog.GroupBy(c => c.Gender).ToList();
        }
        //Page分页
        public void PageLambda()
        {//假设一页两行
            int pagesize = 2;
            
            //第一页
            int pageIndex1 = 1;
            var list_page1 = list_dog.Skip((pageIndex1-1)*pagesize).Take(pagesize).ToList();
            //第二页
            int pageIndex2 = 2;
            var list_page2 = list_dog.Skip((pageIndex2 - 1) * pagesize).Take(pagesize).ToList();
        }
    }

    public class Dog
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public bool Gender { get; set; }
    }
    public class SmallDog
    {
        public string Name { get; set; }

    }

    public class DogToy
    {
        public int ID { get; set; }
        public int ID_Dog { get; set; }
        public string Name { get; set; }

    }
}
原文地址:https://www.cnblogs.com/tianxiaziwei/p/5698169.html