所以我有一个文本文件,其中包含以下格式的信息,包括姓名,电子邮件和电话号码。
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会用于读取文本文件,但我不确定从哪里开始。
答案 0 :(得分:4)
您可以使用以下方法:
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();
答案 1 :(得分:0)
您可以阅读以下所有行//假设所有行总是有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,
});
}
}
此代码是必须检查的样本,如阵列长度等各种条件也请检查
答案 2 :(得分:0)
假设逗号永远不会出现在数据中: 使用StreamReader.ReadLine读取每行文本。对于每行文本,使用string.Split将行拆分为字符串数组,使用逗号作为拆分字符。现在你有一个包含3个字符串的数组,其中[0]是名称,[1]是电子邮件,[2]是电话。