【问题标题】:Read CSV file to multiple integers将 CSV 文件读取为多个整数
【发布时间】:2016-09-21 23:36:52
【问题描述】:

自从我搞砸 C# 或为此编程以来已经有几年了。我正在尝试将 CSV 文件读取为多个整数。 CSV文件格式如下

box1,3
box2,6
box3,10
...
box160,1  

到目前为止,我的代码如下。 TextFieldParser 我从另一个问题中解脱出来。我不确定这是否是我所需要的。我不需要在 CSV 文件中保留“,”之前的信息,我只需要“,”之后的信息与我的代码中的正确 int 相对应。任何帮助或指示将不胜感激。

int box1;
int box2;
int box3;
... 
int box160;

using (TextFieldParser parser = new TextFieldParser(@"C:\SprinklerTimer\DailySprinklerTimer.csv"))
{
     parser.TextFieldType = FieldType.Delimited;
     parser.SetDelimiters(",");
     while (!parser.EndOfData)
     {
           //Processing row
          string[] fields = parser.ReadFields();
          foreach (string field in fields)
          {
               //TODO: Process field
          }
     }
}

【问题讨论】:

  • 您的具体问题是什么?你的代码有用吗?如果是这样,我不明白这个问题是关于什么的。如果它不起作用,您需要提供一个好的minimal reproducible example,它可以可靠地重现您遇到的任何问题,并准确地解释这个问题是什么。至于从字符串中提取数字,逗号分隔或其他方式,Stack Overflow 已经充满了这样的问题,其中许多直接解决了您的特定场景。你找过吗?你发现了什么?那些问题的答案你有没有理解?

标签: c# visual-studio-2010 csv


【解决方案1】:

对于初学者来说,手动制作 160 个盒子整数是非常低效的。尝试使用数组。

int[] box; // declare numbers as an int array of any size
box = new int[160]; //New box array for 0-159

您可以对值执行相同的操作,即一个 value[] 数组,或者我想让 box 成为一个结构而不是 int,其中结构有两个整数。

struct SimpleStruct
{
int name, value;
}

SimpleStruct[] box; // declare numbers as an int array of any size
box = new SimpleStruct[160]; //New box array for 0-159

继续您的实际问题,我会推荐这个问题,如果您实施我的上述更改,这将有所帮助。

Read CSV files to two arrays c#

【讨论】:

  • 感谢您提供有关数组的提示。就像我说的那样已经有几年了。感谢另一篇关于将 cvs 文件读入两个数组的文章,我之前似乎没有找到它。
猜你喜欢
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 2018-01-03
相关资源
最近更新 更多