【发布时间】:2018-06-03 09:44:35
【问题描述】:
我有一个文本文件,其中包含新行中的人员信息,如下所示。而这个数据包含大约 500 人。
人 名称:abc 年龄:40 . 人 名称:xyx 年龄:18 . 人 姓名:尤克 年龄:27 .人物信息介于“Person”和“.”之间人物。我创建了一个Person 类来获取信息:
这段文字
public class Person {
public string Name { get; set;}
public string Age { get; set;}
}
我想阅读这个文本文件并将其解析为Person 类。我可以阅读文件:
string path = @"c:\temp\person.txt";
string readText = File.ReadAllText(path);
但我无法在“Person”和“.”之间解析每个人。人物。
我不想使用if else 条件。是否有使用 Regex 或 Split 或 LINQ 的实用解决方案?
我想在阅读后得到一个这样的列表:
var person = List<Person> {
new Person { Name = "abc", Age = 40 },
new Person { Name = "xyx", Age = 18 },
new Person { Name = "uke", Age = 27 }
....
...
..
}
【问题讨论】:
-
File.ReadAllLines msdn.microsoft.com/en-us/library/…
-
"我不想使用 if else 条件。" ...为什么?
-
格式是否完全不同?意思是,即使对于这 500 人中的一个人来说,在名字之后,在年龄之前,是否有额外的财产?这只是一个例子,你有更多的领域吗?它们可以变化吗?请记住,如果我们不知道您所陈述的问题的一般性,那么很难获得特定问题的一般性答案。解析那个SPECIFIC文件格式相当容易,但如果它开始变化,那就不是了。
-
为什么您的 Age 属性是
string?它应该是数字类型,可能是int根据您的样本。然后,您可以将接受的答案与int.Parse结合使用