Lambda

 

1、在list0中移除list1

            List<int> list0 = new List<int>{ 0,1,2,3,4,5};
            List<int> list1= new List<int> { 0, 1, 2 };

      
            //list0.RemoveAll(p => list1.Contains(p));
            
            list0.RemoveAll(p =>
            {
                if (list1.Contains(p)) return true;
                return false;
            });

            Assert.AreEqual(list0.Count, 3);
            Assert.AreEqual(list0[0], 3);
            Assert.AreEqual(list0[1], 4);
            Assert.AreEqual(list0[2], 5);

参考

listA:
      id:1 , date:2016/11/20  
      id:2 , date:2016/11/20
listB:
      id:1 , date:2016/11/20  
      id:2 , date:2016/11/21
      id:3 , date:2016/11/21

要求删选出listB中 date>A中的date,以及listB中有但是listA中没有的数据,删选后数据应该如下
listC:
      id:2 , date:2016/11/21           date大于A中的date
      id:3 , date:2016/11/21           A中没有

var query = listB.Where(p =>
            {
                if (!listA.Any(s => s.id == p.id)) return true;
                if (listA.Any(s=>s.id == p.id && s.date < p.date)) return true;
                return false;
            });

 

————————————————————————————————————————————————————————

2、List循环运行一个函数

 

private void ResetRole()
{
var roles = ApplicationContext.User.IsTenantEnabled ? GetUsersByTenantId() : Roles.ToList();
roles.ForEach(RemoveRole);
}

public void RemoveRole(Role role)
{
Roles.Remove(role);
}

————————————————————————————————————————————————————————

 

posted on 2017-08-02 11:41  土金豪  阅读(127)  评论(0编辑  收藏  举报