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

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

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; } 

我已经做了一些看,我认为使用streamreader将会读取文本文件,但我不确定从哪里开始。

您可以使用以下方法:

 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读取每行文本。 对于每行文本,使用string.Split将行拆分为字符串数组,使用逗号作为拆分字符。 现在你有一个包含3个字符串的数组,其中[0]是名称,[1]是电子邮件,[2]是电话。

您可以读取以下所有行//假设所有行总是有3个值

 var allLines = File.ReadAllLines(path); var listOfPersons = new List(); 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, }); } } 

这个代码是一个样本必须检查各种条件,如数组长度等也请检查