读取文本文件并将信息插入新对象

本文关键字:新对象 对象 插入 信息 取文本 文件 读取 | 更新日期: 2023-09-27 18:32:07

所以我有一个文本文件,其中包含以下格式的信息,包括姓名、电子邮件和电话号码。

Bill Molan, Bill.Molan@gmail.com, 612-789-7538
Greg Hanson, Greg.Hanson@gmail.com, 651-368-4558
Zoe Hall, Zoe.Hall@gmail.com, 952-778-4322
Henry Sinn, Henry.Sinn@gmail.com, 651-788-9634
Brittany Hudson, Brittany.Hudson@gmail.com, 612-756-4486

当我的程序启动时,我想读取此文件并将每一行变成一个新的 Person(),我最终会将其添加到列表中。我想阅读每一行,然后使用逗号分隔每个字符串以放入 Person() 的构造函数中,这是一个基本类:

public PersonEntry(string n, string e, string p)
{
    Name = n;
    Email = e;
    Phone = p;
}

我已经做了一些查找,我认为使用流阅读器可以读取文本文件,但我不确定从这里开始。

读取文本文件并将信息插入新对象

您可以使用

以下方法:

 
    string line;
    List listOfPersons=new List();
    // Read the file and display it line by line.
    System.IO.StreamReader file = 
        new System.IO.StreamReader(@"c:'yourFile.txt");
    while((line = file.ReadLine()) != null)
    {
        string[] words = line.Split(',');
        listOfPersons.Add(new Person(words[0],words[1],words[2]));
    }
    file.Close();
 

假设逗号永远不会出现在数据中:使用 StreamReader.ReadLine 读取每一行文本。 对于每行文本,请使用字符串。拆分以使用逗号作为拆分字符将行拆分为字符串数组。 现在,您有一个包含 3 个字符串的数组,其中 [0] 是名称,[1] 是电子邮件,[2] 是电话。

您可以按如下方式读取所有行//假设所有行始终有 3 个值

var allLines  = File.ReadAllLines(path);
var listOfPersons = new List<Person>();
foreach(var line in allLines)
{
    var splittedLines = line.Split(new[] {","})
     if(splittedLines!=null && splittedLines.Any())
      {
          listOfPersons.Add( new Person {
                                           Name = splittedLines[0],
                                           Email = splittedLines .Length > 1 ?splittedLines[1]:null,
                                            Phone = splittedLines .Length > 2? splittedLines[2]:null,
                                         });
      }
}

此代码是一个示例,必须检查各种条件,例如数组长度等,也请检查