【发布时间】:2018-11-13 23:52:49
【问题描述】:
我最近开始了一个项目,该项目在 CSV 文件中搜索重复条目并为用户提供删除一个或两个条目的选项。
看起来很简单,但是实际上将 CSV 文件解析到内存中的函数存在问题。
这是有问题的代码...
using System;
using System.IO;
using Microsoft.VisualBasic.FileIO;
using System.Collections.Generic;
using System.Windows.Forms;
public List<string[]> parseCSV(string path)
{
List<string[]> parsedData = new List<string[]>();
string[] fields;
TextFieldParser parser = null;
string line = parser.ReadLine();
try
{
/*TextFieldParser*/ parser = new TextFieldParser(@"c:\temp\test.csv");
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
while (!parser.EndOfData)
{
fields = parser.ReadFields();
parsedData.Add(fields);
//Did more stuff here with each field.
}
parser.Close();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
return parsedData;
}
由于某种原因,在 VS2017 中,parseCSV 在函数声明中带有红色下划线。 我不明白为什么会这样。我已经尝试了明显的修复,例如将函数名称从 parseCSV 更改为其他名称,但显然没有。
【问题讨论】:
-
错误是什么?
-
我没有得到红色下划线,只是对命名约定的抱怨。
-
如果您将鼠标悬停在波浪线上,您会看到一个错误。它是什么?我们不太擅长猜测这样的事情。只是它想让你把
ParseCSV重命名为ParseCsv吗?如果是这样,请忽略它(后者是大多数约定的首选名称)。您是否收到任何错误或重要警告? -
你应该知道这一切以前都做过:有大量的 CSV 解析器可以做很棒的事情(比 VB 的事情更好)。参见 CSVHelper 示例
-
当我将光标悬停在函数名称上时,我收到一条错误消息“List
.ParseCSV(string path) 命名空间不能直接包含成员,例如领域或方法”。至于不满的评论。我知道有一百万个 CSV 解析器比我的要好得多,但就像我之前所说的,这主要是一个学习项目。如果这是我在专业环境中写的东西,我绝对会使用更好的选择。