【问题标题】:Read CSV and make a list with specific values读取 CSV 并列出具有特定值的列表
【发布时间】:2012-11-09 12:54:22
【问题描述】:

我是 C# 新手,我一直在尝试了解如何从 CSV 文件中读取特定值。我的文件格式如下

08/11/2012 01:00:00,28/11/2012 01:00:00,29/11/2012 01:00:00,88,
08/11/2012 01:00:00,29/11/2012 01:00:00,30/11/2012 01:00:00,88,
08/11/2012 01:00:00,30/11/2012 01:00:00,01/12/2012 01:00:00,88,
08/11/2012 01:00:00,01/12/2012 01:00:00,02/12/2012 01:00:00,90.25,
08/11/2012 01:00:00,02/12/2012 01:00:00,03/12/2012 01:00:00,90.25,

我想读取最后一个值(即88 90.25 等)并将其作为字符串保存到列表中。我尝试了到目前为止在这个论坛上找到的所有内容,但在我的情况下它不起作用。

我想这样做是因为我想将此列表与另一个字符串列表进行比较,该列表从我运行的另一个模型生成的 XML 文件中获取这些值。非常感谢您的帮助!

**此 csv 文件包含约 55000 行上述格式的行。

【问题讨论】:

    标签: c# list csv


    【解决方案1】:
    var values = File.ReadAllLines("").Select(x => x.Split(new char[] { ',' })[3]);
    

    小编辑 - 错字。使用此示例进行测试:

      List<string> lines = new List<string>();
      lines.Add("08/11/2012 01:00:00,28/11/2012 01:00:00,29/11/2012 01:00:00,88,");
      lines.Add("08/11/2012 01:00:00,29/11/2012 01:00:00,30/11/2012 01:00:00,88,");
      var values = lines.Select(x => x.Split(new char[] { ',' })[3]);
    

    在列表中检索 88、88。

    【讨论】:

      【解决方案2】:

      如果您的值是这样的,并且在其值中不包含“,”:

      TextReader tr1 = new StreamReader(CSVFileName, true);
      
      var Data = tr1.ReadToEnd().Split('\n')
          .Where(l => l.Length > 0)  //nonempty strings
          .Skip(1)               // skip header if it has one
          .Select(s => s.Trim())   // delete whitespace
          .Select(l => l.Split(',')) // get arrays of values
          .Select(l => new { Date_1 = l[0], 
                             Date_2 = l[1], 
                             Date_3 = l[2], 
                             Val = l[3] });
      

      然后您可以将此对象与foreach 或任何您喜欢的对象一起使用。

      【讨论】:

        【解决方案3】:
        double[] numbers = fileText.Split('\n').Select(x => double.Parse(x.Split(',')[3])).ToArray();
        string numbersJoined = string.Join(" ", numbers);
        

        【讨论】:

          猜你喜欢
          • 2011-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-14
          • 2023-01-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多