我正在比较两个csv文件,并区分是否已添加或删除记录。我能够知道是否添加或删除了项目,但我想知道插入或删除的记录是什么。我有一个不同但相关的帖子,毛里西奥格拉西亚帮了很多Comparing two excel files for differences
if (fileB.excelRows.Count() < fileA.excelRows.Count())
{
string result = "";
foreach (ExcelRow rowA in fileA.excelRows)
{
if (!fileB.ContainsHash(rowA.rowHash))
{
result = rowA.ToString();
}
}
MessageBox.Show("Files are NOT the same. Data was REMOVED.\n" + result);
}
else
{
var addedItems = fileB.excelRows.Except(fileA.excelRows);
MessageBox.Show("Files are NOT the same. Data was ADDED.\n"+ addedItems.ToString());
}
}
现在写下我得到的消息是ExcelFileReader.ExcelRow
,但我没有看到删除的实际记录。
我尝试使用Except运算符,但我得到了相同的字符串消息。
答案 0 :(得分:1)
你不能只是ToString()excel行。它是一个对象,您需要遍历对象属性并将所需的项转换为字符串表示形式。像下面的东西。
foreach (ExcelCell cell in excelRow.AllocatedCells)
{
if (cell.Value != null)
Console.Write("{0}({1})", cell.Value, cell.Value.GetType().Name);
Console.Write("\t");
}