C# 使用Kent Boogaart CSV写入CSV文件的指定列
我有以下场景:我的数据库中有五个字段(姓名、电子邮件、地址等),然后是另外n个用户定义的字段,例如,我可以添加自定义字段,如身份证号码、血型或任何与此相关的字段,并且可以添加任意数量的字段。我现在需要把它放到一个CSV文件中。但是问题是,现在所有字段都是必需的,因此我不能只将标题添加到CSV文件,然后按顺序添加数据,因为数据可能不在正确的列中。我需要做的事情大致如下:C# 使用Kent Boogaart CSV写入CSV文件的指定列,c#,csv,C#,Csv,我有以下场景:我的数据库中有五个字段(姓名、电子邮件、地址等),然后是另外n个用户定义的字段,例如,我可以添加自定义字段,如身份证号码、血型或任何与此相关的字段,并且可以添加任意数量的字段。我现在需要把它放到一个CSV文件中。但是问题是,现在所有字段都是必需的,因此我不能只将标题添加到CSV文件,然后按顺序添加数据,因为数据可能不在正确的列中。我需要做的事情大致如下: 添加预定义的标题 添加其余的自定义标题 添加预定义的数据 添加自定义数据 我的问题是第四步。我需要的是能够将数据添加到指定的列中
List<string> data = new List<string>();
//Add all predefined data to the data object
foreach (CustomDataItem cdi in CustomData)
{
data.Add(cdi.Value);
}
writer.WriteDataRecord(data);
//writer is a Kent.Boogaart.KBCsv.CsvWriter
列表数据=新列表();
//将所有预定义数据添加到数据对象
foreach(CustomData中的CustomDataItem cdi)
{
添加数据(cdi.值);
}
writer.WriteDataRecord(数据);
//作者是Kent.Boogaart.KBCsv.CsvWriter
这种方法的问题是CustomData长度和csv标头长度无法匹配,这意味着我将在错误的列中包含值。有没有办法将数据值添加到指定列中?为什么不在此处使用字典,然后在csv文件中写入时,检查字典中的coreect sequence列是否有键
Dictionary<string, string> data = new Dictionary<string, string>();
//Add all predefined data to the data object
foreach (CustomDataItem cdi in CustomData)
{
data.Add(cdi.ColumnName, cdi.Value);
}
字典数据=新字典();
//将所有预定义数据添加到数据对象
foreach(CustomData中的CustomDataItem cdi)
{
data.Add(cdi.ColumnName、cdi.Value);
}
您可以试试这个
IDictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>();
if (!dictionary.ContainsKey(key))
{
dictionary.Add(key, new List<string>());
}
dictionary[key].Add(value);
IDictionary dictionary=newdictionary();
如果(!dictionary.ContainsKey(键))
{
添加(键,新列表());
}
字典[键]。添加(值);