集合a有数据 1,2,3,4
集合b有数据1,4
现在要把2,3的值比对去掉isDel改为1;foreach (var a in 集合a){
   foreach (var b in 集合b){
      这里怎么根据两集合里的ID值进行比较,不相等的情况将isDel改为1;
       现在这里循环比对的情况是会把集合里的所有数据都改为1;
       if(a.ID != b.ID){
          a.isDel = 1;
      }
   }
}

解决方案 »

  1.   

    集合a是数据库里查出来的,b是前台传过来的,b比a少了2个,那么就把2,3的isDel改为1
    如何操作
      

  2.   

    foreach (var item in b.Where(x => !a.Select(y => y.数据字段).Contains(x.数据字段)))
        item.isDel = 1;
      

  3.   

    a.Except(b).ToList().ForEach(item => item.isDel = 1); 求差集
      

  4.   

    foreach (var a in 集合a){
       foreach (var b in 集合b){
           if(a.ID == b.ID){
              a.noDel= 1;
          }
       }
    }
    最后把a里noDel不等于1的都删掉就OK了
      

  5.   

     public class MyEqualityComparer : IEqualityComparer<String>
        {
            public bool Equals(String x, String y)
            {
                return x.ToLower().TrimEnd() == y.ToLower().TrimEnd();
            }        public int GetHashCode(String obj)
            {
                return obj.ToLower().TrimEnd().GetHashCode();
            }
        }a.Except(b, new MyEqualityComparer()).ToList().ForEach(item => item.isDel = 1);如果你的集合里面元素比较复杂,那你就实现IEqualityComparer<T>接口 来比较什么是相同元素,然后再求差集