我想在C#
的某些数组中读取4-5个CSV文件我知道这个问题已被问及我已经完成了...... 但是我对CSV的使用太简单了......
我的csv fiels包含以下数据类型的列......
string , string
这些字符串没有','所以没有紧张...... 而已。它们并不大。每个只有大约20条记录。
我只是想要读取将它们转换为C#数组....
有没有非常非常简单的和直接方法呢?
答案 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
用于FileStream
和StreamReader
类来访问您的文件。这两个类都实现了IDisposable
接口,因此您可以使用using
语句来关闭流。 (以下示例)
System.Collection.Generic
名称空间适用于集合,例如IList
,List
和ArrayList
等...在此示例中,我们将使用{{1在我的诚实意见中,因为列表比阵列更好。但是,在我返回我们的出站变量之前,我将调用List
成员方法来返回数组。
有很多方法可以从您的文件中获取内容,我个人更喜欢使用.ToArray()
循环来迭代内容。在while(condition)
子句中,使用condition
。当不流结束时,继续迭代文件。
!lReader.EndOfStream
希望这有帮助!非常简单,非常快捷。 干杯!