【发布时间】:2018-05-25 01:56:31
【问题描述】:
我确实找到了this link,但是我未能成功地将其从添加日期时间转换为添加空 int 键。
我有 2 个字典。我使用一个作为 csv 的“标题”行,第二个作为每个“数据”行。
想法是,不管信息的格式如何,我都可以查看相应单元格的标题的索引(键值),并将值放入适当的位置。
例如,文件 A 有一个“姓名”字段,而文件 B 有一个“年龄”字段。它扫描文件 A,并将0, "Name" 添加到 headerDictionary,然后扫描文件 B,并添加 1, "Age"。
这是我的问题开始的地方:
然后它会查找每个文件的值。它在文件 A 中找到“名称”的值,引用 headerDictionary 以检索密钥,并添加 0, "Bob"。然后可以将其写入 csv。它对文件 B 执行相同的过程,并添加 1, "23",以写入 csv。
我的问题是,如果我使用此信息填写 csv,我的 csv 仍将如下所示:
Name,Age
Bob
23
所以我需要填空,还要重新排序字典,以便正确填写每条记录。
// Add empty entries to recordDictionary, based on the headerDictionary
// recordDictionary for File A:
[0, "Bob"]
[1, ""]
// recordDictionary for File B:
[0, ""]
[1, "23"]
那么我的 csv 将如下所示:
Name,Age
Bob,
,23
【问题讨论】:
-
最后一个文本框是您的预期输出吗?
-
您是否有一个标题字典和多个记录字典(每个“文件”一个)?
-
@Monty 是的,是的。为每个新文件重新创建“记录”字典,以避免构建“矩阵”。
-
那么对于每个“文件”,您需要遍历标题字典中的每个键:如果它不在记录字典中,只需输入一个逗号,如果是,则输出值和一个逗号。我在这里错过了什么吗?
-
@monty 是的。而已。我只想确保每个条目都位于适当的位置,因为 1 个文件可能同时具有两个“字段”,但顺序不同(即“年龄”、“姓名”)。解释我为什么要使用索引,这样我可以在必要时重新排序。
标签: c# .net csv dictionary