我有一组三个字符串(firstname
,lastname
,account
)。
我有两个这个类的列表:
firstname
和lastname
具有值lastname
和account
具有值唯一标识符为lastname
。如何快速将第二个列表中的account
值添加到第一个列表中的相应实例?
class MyClass
{
public string firstName = "";
public string lastName = "";
public string account = ""
}
List<MyClass> list1; //This is populated from a csv and fills strings firtname and lastname
List<MyClass list2; // This is populated from a report and fills lastname and account
这两个列表对lastname
具有相同的信息,但不是必须以相同的顺序。我需要在lastname
上进行匹配,并在account
中设置list1
个实例。
答案 0 :(得分:0)
假设您已定义了适当的getter和setter,并且您希望确保它们具有相同的唯一标识符:
if (obj1.getString2().equals(obj2.getString2()) {
obj1.setString3(obj2.getString3());
}
当然?
但是你必须注意这里的空值。如果obj1为null或obj.getString2()为null,那么您将遇到NullPointerException问题。
答案 1 :(得分:0)
现在你澄清了,试试这个:
foreach(MyClass c1 in list1)
{
MyClass tmp = list2.FirstOrDefault(c2 => c1.lastname == c2.lastname);
c1.account = tmp != null ? tmp.account : null; // or string.Empty if you like
}