遍历 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]);
      }
  }

你能告诉我我错过了什么吗?

遍历 IEnumerable 字符串数组

为了打印出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);
        }