2011-12-28 67 views
0

我有以下情況:我的數據庫中有五個字段(名稱,電子郵件地址等),然後是另外n個用戶定義的字段,例如我可以添加自定義字段,如身份證號碼,血型或任何其他事情,儘可能多的我喜歡的。我現在需要把它放到一個CSV文件中。但問題是,現在所有的字段都是必需的,因此我不能只將標題添加到CSV文件,然後順序添加數據,因爲數據可能不在正確的列中。我需要做的是沿着這一線的東西:使用Kent Boogaart編寫指定的CSV文件列CSV

1)添加預定義的頭

2)添加自定義首

3)的其餘部分添加預定義的數據

4)添加自定義數據

我的問題是第4步。我需要的是能夠將數據添加到指定的列,我似乎無法找到如何在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 

這種方法的問題是,長的CustomData和CSV標題長度不能匹配,這意味着我將在錯誤的列中的值。有沒有辦法將數據值添加到指定的列?

任何幫助非常感謝。

感謝

回答

0

爲什麼不使用字典這裏,然後在csv文件檢查寫作時,如果項存在於詞典中的coreect順序列

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); 
     } 
0

你可以試試這個

 IDictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>(); 
     if (!dictionary.ContainsKey(key)) 
     { 
      dictionary.Add(key, new List<string>()); 
     } 
     dictionary[key].Add(value);