我这里有两个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;
}
}
}
结果,只有第一行有数据,而且第二条数据读取出来的时候还把第一条覆盖了。。求高手指点
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;
}
}
}
结果,只有第一行有数据,而且第二条数据读取出来的时候还把第一条覆盖了。。求高手指点
如果代码运行没有问题,你可以在原来的代码中加一个break.if (bol == true)
{
Name.MemberName = Bname.MemberName;
break;
}
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;
}
}
}楼主的代码可以优化下
foreach(B AName in Lista){
if(BName.id==AName.id){
AName.MemberName=BName.MemberName;
break;
}
}
}