【问题标题】:CSV file to list in C# [duplicate]要在 C# 中列出的 CSV 文件 [重复]
【发布时间】:2016-03-11 10:50:22
【问题描述】:

我有一个 CSV 文件,格式如下:名字、姓氏、出生日期、死亡日期。如何从我的 CSV 文件中获取所有数据并将它们转换为对象列表?

我正在考虑实现以下类

public class Person
{
    private string f_name;
    private string l_name;
    private int dob;
    private int dod;

    public Person(string first, string second, int dob, int dod)
    {
        this.f_name = first;
        this.l_name = second;
        this.dob = dob;
        this.dod = dod;
    }
}

【问题讨论】:

  • 很遗憾有这么多的CSV解析问题,其中大多数答案都依赖于简单的字符串拆分。 这是错误的。使用 CSV 解析库。

标签: c# csv object


【解决方案1】:
    List<Person> result = File.ReadAllLines("@C:\file.csv")
        .Select(y => y.Split(','))
                        .Select(x => new {
                            first = x[0],
                            second = x[1],
                            dob=int.Parse(x[2]),
                            dod =int.Parse(x[3]))
                            }).Select(x=> new Person(x.first, x.second, x.dob, x.dod ))
                           .ToList();

灵感来自this answer

【讨论】:

  • CSV 文件可能使用引号 ( " ) 表示字符串值,也可能存在多行字符串值。此示例非常简单,仅适用于简单/特定任务,当您“信任”传入文件时.
猜你喜欢
  • 1970-01-01
  • 2014-02-11
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 2021-11-11
  • 2012-09-27
相关资源
最近更新 更多