2016-07-27 88 views
-1

我搜索了四周,每個人都說C#中處理CSV文件的最好方法是Filehelpers。但我一直在尋找,而且我無法找到關於如何附加csv文件的全面指南。我有這個類:如何使用filehelpers將數據存儲在CSV文件中?

class FlashCard 
{ 
    public static string Front { get; private set; } 
    public static string Back { get; private set; } 
    public static Difficulty CardDifficulty { get; private set; } 
    public enum Difficulty 
    { 
     easy, 
     medium, 
     hard, 
     very 
    } 
    public void Flashcard(string front, string back, Difficulty Difficulty) 
    { 
     Front = front; 
     Back = back; 
     CardDifficulty = Difficulty; 
    } 


} 

而且我想將它的實例保存在CSV文件中。但是如何?

+0

您可以使用Linq2Csv庫,它具有用於處理csv文件的全面功能列表。 http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library – Maverick

+0

您可以按照csv模式/標準手工創建csv格式,也可以使用可以爲您完成的庫/框架。您可以在線搜索執行此操作的庫。 CsvHelper是我所知道的。 – Nkosi

回答

1

你必須已經有一個csv文件,那麼你可以很容易地將這個文件轉換爲你的實體(如FlashCards)。

就以快速啓動http://www.filehelpers.net/quickstart/

首先你必須用屬性標記您的類[DelimitedRecord(「」)]

0

要使用FileHelpers寫信類的CSV文件,地圖一看你的班級到描述CSV文件的'spec'類。像這樣的東西。

[DelimitedRecord(",")] 
public class FlashCardCsvRow 
{ 
    public string Front; 
    public string Back; 
    public string CardDifficulty; 
} 

var flashcards = new List<FlashCard>(); // your class above 
// populate flashcards however you like 

var csvRows = flashCards.Select(x => 
    new FlashCardCsvRow() 
    { 
     Front = x.Front, 
     Back = x.Back, 
     CardDifficulty = x.CardDifficulty.ToString(); 
    }); 

var engine = new FileHelperEngine<FlashCardCsvRow>(); 
engine.WriteFile("Output.Txt", csvRows); 

FileHelpers有很多不錯的功能可以幫助您進一步提高。例如,您可能需要執行your own enum converter而不是使用x.CardDifficulty.ToString()

順便說一句,您會遇到FlashCardstatic屬性問題。我不確定你是否打算使這些屬性爲靜態。

相關問題