我的主要目標是比較存儲在數據庫和XLSX文件中的數據。爲什麼列表比較失敗,如果列表(似乎是)相同
爲了做到這一點,我已經創建了兩個名單如下方式:
private class ProductList
{
public string productSku { get; set; }
public string productName { get; set; }
public string productSubfamilyId { get; set; }
public string productSubfamilyName { get; set; }
public string productFamilyId { get; set; }
public string productFamilyName { get; set; }
};
(...)
List<ProductList> productListsDB = new List<ProductList>();
List<ProductList> productListsXLSX = new List<ProductList>();
(...)
要第一個,我提供直接從SQL查詢結果數據:
while (reader.Read())
{
ProductList pl = new ProductList();
pl.productSku = reader.GetString(reader.GetOrdinal("ProductSku"));
pl.productName = reader.GetString(reader.GetOrdinal("ProductName"));
pl.productSubfamilyId = reader.GetString(reader.GetOrdinal("ProductSubfamilyId"));
pl.productSubfamilyName = reader.GetString(reader.GetOrdinal("ProductSubfamilyName"));
pl.productFamilyId = reader.GetString(reader.GetOrdinal("ProductFamilyId"));
pl.productFamilyName = reader.GetString(reader.GetOrdinal("ProductFamilyName"));
productListsDB.Add(pl);
}
另外一個充滿了存儲數據在XLSX文件:
for (int rowNum = startingRow; rowNum <= totalRows; rowNum++)
{
var row = myWorksheet.Cells[rowNum, 1, rowNum, totalColumns].ToArray();
ProductList pl = new ProductList();
pl.productSku = (string)row[0].Value;
pl.productName = (string)row[1].Value;
pl.productSubfamilyId = (string)row[2].Value;
pl.productSubfamilyName = (string)row[3].Value;
pl.productFamilyId = (string)row[4].Value;
pl.productFamilyName = (string)row[5].Value;
productListsXLSX.Add(pl);
}
然後我想對它們進行比較和:
Assert.IsTrue(Equals(productListsDB.Count,productListsXLSX.Count), "Number of records in Excel file and DB differs!");
通過就好!
但是,任何兩個以下不及格:
Assert.IsTrue(productListsDB.All(productListsXLSX.Contains), "Data sent in Excel file and stored in DB are equal.");
CollectionAssert.AreEquivalent(productListsDB, productListsXLSX, "Data sent in Excel file and stored in DB are equal.");
我是很新,編寫和調試代碼,但我設法得到一些見解,在VS.與快速監視列表我複製的數據單獨的文件,並擔任司儀 - 他們是相同:
http://pastebin.com/KFDHpQkC 和 http://pastebin.com/4j1n1nPH
任何線索的傢伙?
爲什麼SKU的類名爲ProductList? – GolezTrol
無關,名稱取自TC –
只是關於代碼可讀性的評論,而不是核心問題。 – GolezTrol