2016-05-04 230 views
0

我有一個像列表對象的列表合併對象基於對象屬性

class Address{ 
     public int HouseNo 
     public string Street 
    } 

    class Person 
    { 
     string Name; 
     public Address location 
    } 

    List<Person> list1 = new List<Person> 
          { 
          new Person("a", Address x), 
          new Person("b", Address y), 
          new Person("c", Address z), 
          new Person("a", Address a) 
          }; 

我想合併/列表1中基於同一Person.Name

這樣的成績相結合的物體包含

Person("a", [Address x,Address y]) 

回答

0

您可以使用字典<字符串列表<地址>>作爲中間容器中創建您的合併,其中的關鍵是人的名字並且該值是關聯地址的列表。

首先,在原始列表中爲每個人製作一個循環,查看密鑰(名稱)是否已包含在詞典中。如果是,則將新地址添加到詞典值中,如果不添加人名作爲鍵和包含地址的新列表。

您的原始列表只需要一個循環。

最後,您可以將您的字典重新轉換爲您喜歡的任何類型的容器。

我在說關於System.Collections.Generic.Dictionary < key,value>。

我必須學習如何在這裏格式化示例代碼... :-)