我正在阅读多行文字文件,其中包含以逗号分隔的值:
string[] lines = File.ReadAllLines(path);
IEnumerable<string[]> resultArray1 = lines.Select(x => x.Split(','));
在调试模式下,当我查看结果时,它们看起来像这样:
[0] drill down to see [0] "3.22" [1] "4.00
通过以下循环,我可以打印出值,但我不确定如何在不指定[0]和[1]的情况下执行此操作,并且我不确定如何知道哪一行我正在查看该文件。到目前为止我有这个:
foreach (string line in lines)
{
foreach (string[] item in resultArray1)
{
Console.WriteLine(item[0]);
Console.WriteLine(item[1]);
}
}
你能告诉我我错过了什么吗?
答案 0 :(得分:2)
要打印string[]
中的单独元素,我会使用for
循环:
foreach (string[] item in resultArray1)
{
for(var i = 0; i < item.length; i++)
Console.WriteLine(item[i]);
}
至于跟踪您所在文件的哪一行,请使用单独的变量跟踪该文件,或将foreach
更改为for
。以下是变量实现:
int line = 0;
foreach (string line in lines)
{
//Code here
line++;
}
答案 1 :(得分:1)
如果每行只包含两个值,则可以执行以下操作。
public class Data
{
public string Property1 { set; get; }
public string Property2 { set; get; }
}
string[] lines = File.ReadAllLines(path);
IEnumerable<Data> resultArray1 = lines.Select(x =>
{
var line = x.Split(',');
return new Data
{
Property1 = line[0],
Property2 = line[1],
};
});
//And loop through the enumeration.
foreach (var line in resultArray1)
{
Console.WriteLine(line.Property1);
Console.WriteLine(line.Property2);
}