我有一个包含以下数据的平面文本文件;
Following are the names and ages in a text file.
26|Rachel
29|Chris
26|Nathan
数据保存在服务器上(例如 http://domain.com/info.dat ),我想读取此文本文件并将其插入数组(年龄和姓名)中。我想忽略第一行(以下是......)。
我整理了使用 webclient 抓取数据文件的代码和使用 streamreader 打开 dat 文件的代码如下;
using (StreamReader sr = new StreamReader(path))
{
while (sr.Peek() >= 0)
{
string[] channels = Text.Split('|');
foreach (string s in channels)
{
}
}
}
上述代码的问题在于将其输入到具有正确列的数组中时。谁能给我一些指示?
非常感谢
最佳答案
使用一些 LINQ 的答案怎么样:
var results = from str in File.ReadAllLines(path).Skip(1)
where !String.IsNullOrEmpty(str)
let data = str.Split('|')
where data.Length == 2
select new Person { Age = Int32.Parse(data[0], NumberStyles.Integer, CultureInfo.CurrentCulture), Name = data[1] };
results
现在是IEnumerable<Person>
你可以做什么ToList
或 ToArray
继续获得 List<Person>
或 Person[]
,或者您可以简单地将结果与 foreach
一起使用循环。
更新:这里是 Person
类需要使其更具功能性。
public class Person
{
public int Age { get; set; }
public string Name { get; set; }
}
关于c# - 将文本文件中的数据解析为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848388/