我有一個Pharmacy
類,其中包含很多屬性,並且Pharmacy
通過將ID
屬性作爲關鍵字聲明爲唯一。檢查2個對象是否在字段中包含相同的數據
我有代碼將MySQL中的表中的所有行取回到Pharmacy
對象及其屬性中。
我想比較兩個List<Pharmacy>
對象在他們的條目,並檢查是否存在兩個表中同一ID
,如果它不存在,然後將其添加到一個新的List<Pharmacy
。如果兩個對象中都存在ID
,但對象中的數據不同,請將該對象另存爲新的List<Pharmacy
。
這是類的樣子。
public class Pharmacy
{
[Key]
public string Tunniste { get; set; }
public string Lyhenne { get; set; }
public string PitkaNimi { get; set; }
public string YlempiYksikko { get; set; }
public string Hierarkiataso { get; set; }
public string VoimassaoloAlkaa { get; set; }
public string VoimassaoloPaattyy { get; set; }
...
}
這是芬蘭語,但我希望你能忍受。 以下是我試圖檢查它們是否相同的方法。
for (int i = 0; i != pharmacyListFromArchive.Count; i++)
{
if (pharmacyListFromArchive[i].Equals(pharmacyListFromNew[i]))
{
Console.WriteLine("Objects are identical.");
}
else
{
Console.WriteLine("Objects are NOT identical. {0} - {1}", pharmacyListFromArchive[i].Tunniste, pharmacyListFromNew[i].Tunniste);
}
}
但是,當我運行它,沒有任何對象註冊爲相同,即使它們是相同的數據。我該如何解決這個問題?
你必須重寫'Equals'來比較ID屬性,否則只有引用被比較 –
序列化這兩個對象並比較結果字符串,可能是一個選項? – bartbje