C#结合两类字符串

时间:2016-04-01 15:30:27

标签: c# string class

我有一组三个字符串(firstnamelastnameaccount)。
我有两个这个类的列表:

  • 第一个列表包含firstnamelastname具有值
  • 的实例
  • 第二个列表包含lastnameaccount具有值
  • 的实例

唯一标识符为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个实例。

2 个答案:

答案 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
}