我的主要問題描述是這樣的:合併兩個列表的第一個列表的關鍵
我BankAccount
對象的兩個列表。 A BankAccount
具有諸如BankCode
和AccountNumber
的屬性,其唯一地標識帳戶。所以這兩個列表可能包含相同的銀行賬戶,但它們可能有Source
,Amount
或AccountTypes
的不同。
這裏的目的是合併這兩個列表:
- 帳戶添加到第一個列表,如果它是在第二個(而不是在第一個列表)可用。
- 如果兩個銀行賬戶在兩個銀行賬戶中都相同,請更新第一個銀行賬戶的詳細信息,並在第二個銀行賬戶中填寫(匹配)銀行賬戶的詳細信息。
我試過實施一個SO post中提到的解決方案。我去了,並試圖在.NET代碼墊網站上寫下我的代碼。但是在嘗試執行第一行後,我無法獲得輸出。 93我已經評論過。
class BankAccount
{
public string BankCode{get;set;}
public string AccountNumber{get;set;}
public string AccountType{get;set;}
public string Amount{get;set;}
public string Source{get;set;}
public override bool Equals(object obj)
{
var acc = obj as BankAccount;
return Equals(acc);
}
public override int GetHashCode()
{
return this.GetHashCode();
}
public bool Equals(BankAccount acc2)
{
if(acc2 == null) return false;
if(string.IsNullOrEmpty(acc2.BankCode)) return false;
if(string.IsNullOrEmpty(acc2.AccountNumber)) return false;
return this.BankCode.Equals(acc2.BankCode) && this.AccountNumber.Equals(acc2.AccountNumber);
}
}
//List<BankAccount> lst3 = lst.Union(lst1).ToList(); // line 93
可以查看完整密碼here。
PS:我不知道這是否可能是與鍵盤網站的問題。
更新 - 週一,2011年2月14日 - 4時50分二十四秒(AM)/四點五十分24秒GMT
感謝名單進行更新。但有些東西仍然是錯誤的。在輸出中,清單3的第一項應該有AccountType=P
和Source=lst2
。第二個要求不符合。我圖Union()
只做我需要的一部分。我需要做什麼來滿足第二個要求。
編輯通過drachenstern:我不知道這個稱號是更好,但它肯定比以前的標題更多的信息,以實際的問題:\
你的問題是什麼? – Gabe 2011-02-14 03:25:25