首页 文章

将CSV文件数据插入列表<object> C#

提问于
浏览
-3

很长一段时间我一直在寻找足够的答案,但没有任何运气 .

正如 Headers 所示,我正在尝试将CSV数据读入列表 . 基本上我有一个名为Person的类:

public string Name { get; set; }
    public string Surname { get; set; }
    public DateTime DateOfBirth { get; set; }

我正在尝试将其从CSV读取到列表中 . 我不确定如何在行方面做到这一点,以便它匹配名称,姓氏,dob

CSV文件看起来像这样:

姓名姓氏出生日期Angela Blah 24/01/1990

简而言之,我希望将'Angela'细节插入到Person对象的List中 .

任何帮助,将不胜感激 . 谢谢 .

编辑:

我做了几件事:

在我的Person类public Person(string line)中创建一个constuctor {var split = line.Split(',');

Name = split[0];
        Surname = split[1];
        DateOfBirth = split[2];  
    }

然后想要像这样使用它:

var people = File.ReadLines("../people.csv").Select(line => new 
             Person(line)).ToList();

但当然它是空的,因为我正在创造一个新人 . 这是我能想到的最接近的......这是一个正确的答案方向还是完全错误?

2 回答

  • 0

    您可以通过将文件导出为字符串( File.ReadAllLines() ),然后使用字符串上的 .Split(char splitcharacter) 将其分隔开逗号来完成此操作 .

    static void Main(string[] args)
        {
            // READ FILE INTO TMP
            var tmp = "TEST,TEST1,TEST2".Split(',');
            var Name = tmp[0];
            var Surname = tmp[1];
            // ETC
        }
    
  • 0

    您可以拆分该行,然后将其添加到列表中

    static void(string[] args)
    {
      var list = new List<Person>();
      var person = new Person();
      var arr = line.split(','); //line = "test1,test2,test3
      person.Name = arr[0];
      person.SurName = arr[1];
      person.DateOfBirth = arr[2];
      list.Add(person);
    }
    

    理想情况下,您将有一个循环,它将从csv读取每一行,然后根据分隔符(,)拆分它,然后在循环内部,您将在列表中添加Person类的对象

相关问题