2016-07-27 44 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属性问题。我不确定你是否打算使这些属性为静态。

相关问题