C#CSV文件到数组/列表

时间:2013-04-24 15:04:45

标签: c# .net csv csv-import

我想在C#

的某些数组中读取4-5个CSV文件

我知道这个问题已被问及我已经完成了...... 但是我对CSV的使用太简单了......

我的csv fiels包含以下数据类型的列......

string , string

这些字符串没有','所以没有紧张...... 而已。它们并不大。每个只有大约20条记录。

只是想要读取将它们转换为C#数组....

有没有非常非常简单的直接方法呢?

3 个答案:

答案 0 :(得分:3)

这个包括引号和&字段中的逗号。 (假设你一次做一行)

using Microsoft.VisualBasic.FileIO;   //For TextFieldParser

// blah blah blah

StringReader csv_reader = new StringReader(csv_line);

TextFieldParser csv_parser = new TextFieldParser(csv_reader);
csv_parser.SetDelimiters(",");
csv_parser.HasFieldsEnclosedInQuotes = true;
string[] csv_array = csv_parser.ReadFields();

答案 1 :(得分:2)

要阅读文件,请使用

TextReader reader = File.OpenText(filename);

读一行:

string line = reader.ReadLine()

然后

string[] tokens = line.Split(',');

将它们分开。

通过在最后两个示例行周围使用循环,您可以将每个标记数组添加到列表中,如果这是您需要的。

答案 2 :(得分:1)

以下是将CSV内容转换为字符串数组的简单方法。 CSV文件可以有双引号,回车换行符和分隔符是逗号。 以下是您需要的库:

System.IO; System.Collection.Generic;

System.IO用于FileStreamStreamReader类来访问您的文件。这两个类都实现了IDisposable接口,因此您可以使用using语句来关闭流。 (以下示例)

System.Collection.Generic名称空间适用于集合,例如IListListArrayList等...在此示例中,我们将使用{{1在我的诚实意见中,因为列表比阵列更好。但是,在我返回我们的出站变量之前,我将调用List成员方法来返回数组。

有很多方法可以从您的文件中获取内容,我个人更喜欢使用.ToArray()循环来迭代内容。在while(condition)子句中,使用condition。当流结束时,继续迭代文件。

!lReader.EndOfStream

希望这有帮助!非常简单,非常快捷。 干杯!