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);
}
————————————————————————————————————————————————————————