【问题标题】:How to store data inside a CSV file using filehelpers?如何使用文件助手将数据存储在 CSV 文件中?
【发布时间】:2016-07-27 10:23:43
【问题描述】:

我四处搜索,每个人都说在 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 文件中。但是怎么做呢?

【问题讨论】:

  • 您可以使用 Linq2Csv 库,它包含处理 csv 文件的完整功能列表。 codeproject.com/Articles/25133/LINQ-to-CSV-library
  • 您可以按照 csv 模式/标准自己手动创建 csv 格式,也可以使用可以为您完成的库/框架。您可以在线搜索执行此操作的库。 CsvHelper 是我所知道的。

标签: c# .net csv filehelpers


【解决方案1】:

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

看看快速入门http://www.filehelpers.net/quickstart/

首先你必须用属性 [DelimitedRecord(",")] 标记你的类

【讨论】:

    【解决方案2】:

    要使用 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()

    顺便说一句,您在FlashCard 中的static 属性会遇到问题。我不确定您是否打算将这些属性设为静态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2019-01-24
      • 1970-01-01
      • 2019-03-03
      相关资源
      最近更新 更多