遍历 IEnumerable 字符串数组
本文关键字:数组 字符串 IEnumerable 遍历 | 更新日期: 2023-09-27 18:33:23
我正在读取一个多行文本文件,该文件具有逗号分隔的值,如下所示:
string[] lines = File.ReadAllLines(path);
IEnumerable<string[]> resultArray1 = lines.Select(x => x.Split(','));
在调试模式下,当我查看结果时,它们如下所示:
[0] 向下钻取以查看 [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]);
}
}
你能告诉我我错过了什么吗?
为了打印出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++;
}
如果每行只包含两个值,则可以执行以下操作。
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);
}