日期:2014-05-17  浏览次数:20756 次

两个List进行比较..修改值
问题是这样的,两个list对象(A和B)这两个都有相同的字段,A.Ip,A.Time与A.Ip,A.Time。
然后判断A.Ip中有B.Ip这个值,就把B.Time字段的这个值给A.Time传过去!

说完就是根据B来修改A字段的值,这个怎么做~~麻烦大家说下 谢谢
对象 C#

------解决方案--------------------
2个循环。
List<A> aList;
List<B> bList;
aList.ForEach(a=>{
   bList.ForEach(b=>{
    if(b.ip.Equal(a.ip))a.time=b.time;
    break;
});
});
------解决方案--------------------
引用:
listA=listA.Join(listB,a=>a.lp,b=>b.lp,(a,b)=>new YourClassName{lp=a.lp,Time=b.Time}).ToList();

后来想了一下,应该用LEFT JOIN:

listA= (from a in listA
       join b in listB on a.lp equals b.lp into leftGroup
       from b in leftGroup.DefaultIfEmpty()
       select new YourClassName{lp=a.lp,Time=b==null?a.Time:b.Time}).ToList();