【发布时间】:2016-07-06 11:47:40
【问题描述】:
我正在为两个包含列和对应值的 csv 文件做一个比较器 对于每个新行上的每一列。列在文件的第一行指定。之后的每一行都包含每一列的数据。
我正在尝试创建一个程序,该程序可以处理具有不同行号和列数的文件,并且还可以显示不同值的行号,然后创建一个显示行号的新文本文件,列文件 1 和文件 2 的名称和值。
应该根据一些标识符而不是逐行进行比较。 如果在列行中指定了某些列数据丢失,那么它可以显示数据丢失的列数。
例如:
worker1.csv:
姓名;年龄;身高;性别;
鲍勃;21;190;男
约翰;35;182;男
玫瑰;
玛丽;20;175;女
worker2.csv
姓名;年龄;身高;性别
鲍勃;21;185;男
约翰;30;186;男
玛丽;
输出.csv
玛丽发现的不同之处:
文件 2,第 3 行,缺少三个值
在 Bob 中发现的差异:
文件 1,行号 1,高度:190
文件 2,行号 1,高度:185
在 John 中发现的差异:
文件 1,第 2 行,年龄:35,身高:182
文件 2,第 3 行,年龄:30,身高:186
我应该怎么做?我确实在两个文件行上都查看了 LINQ 的“除外”,但我怎样才能获得行号?
【问题讨论】:
-
我会将 csv 数据读入 DataTables。网上有很多信息可以比较两个数据表。在以下帖子中查看我的导入代码:stackoverflow.com/questions/30129406/…
-
欢迎来到堆栈溢出 :-) 到目前为止你尝试了什么?请向我们展示您的代码。请看How to Ask
-
谢谢 :) 原来这比我最初的复杂。我已经尝试了一个混乱的解决方案,将每一行转换为具有相应键和值的字典。所以 1 个文件基本上形成了一个字典列表,然后我将其与另一行的字典进行比较。虽然我让它以某种方式工作,但它非常复杂,如果可比较的文件具有不同的行数,或者另一个文件的行具有不同数量的值,它很容易中断。到目前为止,我大部分时间都在放弃我的解决方案:D
-
output.csv最后一行应该是文件2,行号2,年龄:30,身高:186