如何使用filehelpers将数据存储在CSV文件中?

时间:2016-07-27 10:23:44

标签: c# .net csv filehelpers

我四处搜索,每个人都说在C#中处理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文件中保存它的实例。但是如何?

2 个答案:

答案 0 :(得分:1)

您必须已经有一个csv文件,然后您可以轻松地将此文件转换为您的实体(如FlashCards)。

快速查看http://www.filehelpers.net/quickstart/

首先,您必须使用属性[DelimitedRecord(",")]

标记您的课程

答案 1 :(得分:0)

要使用FileHelpers从您的班级编写CSV文件,请将您的班级映射到'规范'描述CSV文件的类。这样的事情。

[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()

顺便说一句,您static中的FlashCard属性会遇到问题。我不确定你是否打算让这些属性保持静态。