我只是想为这个问题道歉,这里有很多这样的问题,但我找不到具体的问题。
我有一个列表,每个项目都包含DateTime,int和一个字符串。我已成功将所有列表项写入。逗号文件,该文件由逗号分隔。 例如09/04/2015 22:12:00,10,在Stackoverflow上发布。
我需要逐行遍历文件,每行从索引0开始,再到索引2.此时我能够调用索引03,它返回文本文件中第二个列表项的DateTime 。该文件是逐行写入的,但我很难用分隔符和换行符读回来。
如果我没有多大意义,我很抱歉,我将不胜感激,谢谢。
答案 0 :(得分:7)
string[] lines = File.ReadAllLines( filename );
foreach ( string line in lines )
{
string[] col = line.Split( new char[] {','} );
// process col[0], col[1], col[2]
}
答案 1 :(得分:2)
您可以通过var lines = File.ReadAllLines(pathToFile);
一次阅读所有内容。然后,您可以通过以下方式将每一行拆分为一个字段数组:
foreach (var line in lines) {
String[] fields = line.Split(',');
}
如果你的文件中没有任何流浪逗号,并且唯一的逗号是真正的分隔符,这意味着fields
将始终是一个3元素数组,每个字段都连续出现。
答案 2 :(得分:0)
或者,您可以执行以下操作:
public static List<Values> GetValues(string path)
{
List<Values> valuesCollection = new List<Values>();;
using (var f = new StreamReader(path))
{
string line = string.Empty;
while ((line = f.ReadLine()) != null)
{
var parts = line.Split(',');
valuesCollection.Add(new Values(Convert.ToDateTime(parts[0]), Convert.ToInt32(parts[1]), parts[2]);
}
}
return valuesCollection;
}
class Values
{
public DateTime Date { get; set; }
public int IntValue { get; set; }
public string StringValue { get; set; }
public Values()
{
}
public Values(DateTime date, int intValue, string stringValue)
{
this.Date = date;
this.IntValue = intValue;
this.StringValue = stringValue;
}
}
然后,您可以遍历列表或值集合并访问每个对象及其属性。例如:
Console.WriteLine(values.Date);
Console.WriteLine(values.IntValue);
Console.WriteLine(values.StringValue);