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

两个List赋值的问题
我这里有两个List集合 结构是这样的
ListA
-------------------
ID MemberName UniqueName
1 NULL 1
2 null 2
--------------------
ListB
--------------------
ID MemberName
1 123
2 345
--------------------
我想把B的Name 赋到A中去
我这样写的代码 
List<A> ListA= new List<A>;
List<B> ListB = new List<B>;
 foreach (A Name in ListA)
  {
  foreach (B Bname in Listb)
  {
  bool bol = false;
  Name.MemberName = string.Empty;
  if (Name.ID == Bname.ID)
  {
  bol = true;
  }
  if (bol == true)
  {
  Name.MemberName = Bname.MemberName;
   
  }  
  }
   
  }
结果,只有第一行有数据,而且第二条数据读取出来的时候还把第一条覆盖了。。。。。。。。。。。求高手指点

------解决方案--------------------
的确,1楼说得没错。
如果代码运行没有问题,你可以在原来的代码中加一个break.

if (bol == true)
{
Name.MemberName = Bname.MemberName;
break;
}
------解决方案--------------------
List<A> ListA= new List<A>;
List<B> ListB = new List<B>;
 foreach (A Name in ListA)
{
foreach (B Bname in Listb)
{
Name.MemberName =string.Empty;
if (Name.ID == Bname.ID)

Name.MemberName = Bname.MemberName;
break;
}
}
 }

楼主的代码可以优化下

------解决方案--------------------
试试这样
C# code

foreach(B BName in Listb){
  foreach(B AName in Lista){
     if(BName.id==AName.id){
        AName.MemberName=BName.MemberName;
        break;
     }
  }
}