Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Kent Boogaart CSV写入CSV文件的指定列_C#_Csv - Fatal编程技术网

C# 使用Kent Boogaart CSV写入CSV文件的指定列

C# 使用Kent Boogaart CSV写入CSV文件的指定列,c#,csv,C#,Csv,我有以下场景:我的数据库中有五个字段(姓名、电子邮件、地址等),然后是另外n个用户定义的字段,例如,我可以添加自定义字段,如身份证号码、血型或任何与此相关的字段,并且可以添加任意数量的字段。我现在需要把它放到一个CSV文件中。但是问题是,现在所有字段都是必需的,因此我不能只将标题添加到CSV文件,然后按顺序添加数据,因为数据可能不在正确的列中。我需要做的事情大致如下: 添加预定义的标题 添加其余的自定义标题 添加预定义的数据 添加自定义数据 我的问题是第四步。我需要的是能够将数据添加到指定的列中

我有以下场景:我的数据库中有五个字段(姓名、电子邮件、地址等),然后是另外n个用户定义的字段,例如,我可以添加自定义字段,如身份证号码、血型或任何与此相关的字段,并且可以添加任意数量的字段。我现在需要把它放到一个CSV文件中。但是问题是,现在所有字段都是必需的,因此我不能只将标题添加到CSV文件,然后按顺序添加数据,因为数据可能不在正确的列中。我需要做的事情大致如下:

  • 添加预定义的标题

  • 添加其余的自定义标题

  • 添加预定义的数据

  • 添加自定义数据

  • 我的问题是第四步。我需要的是能够将数据添加到指定的列中,而我似乎无法在KBCSV中找到如何做到这一点

    我目前正在做的是:

    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(键))
    {
    添加(键,新列表());
    }
    字典[键]。添加(值);