【发布时间】:2015-07-15 11:53:24
【问题描述】:
我有一个包含 2 行的 csv 文件。
A,1
B,2
我想读取该格式的文件,并将其转换为以下格式:
Name : A, ID: 1
Name : B, ID: 2
我正在使用以下 .net api
using (FileStream reader = File.OpenRead(@"Data.csv")) // mind the encoding - UTF8
using (TextFieldParser parser = new TextFieldParser(reader))
{
parser.TrimWhiteSpace = true; // if you want
parser.Delimiters = new[] { "," };
parser.HasFieldsEnclosedInQuotes = true;
while (!parser.EndOfData)
{
string[] line = parser.ReadFields();
List<string> li = line.SelectMany(x => x.Split(',')).ToList();
}
}
在 li 变量中,我可以在拆分后获取单个元素,例如:A 1,但我不知道如何向其中添加 key 属性,以使名称:A,ID:1
编辑:
我最终需要它以列表格式,因为它很容易根据它来分离实体 例如:
List{
List1 = Name : A,ID:1
List2 = Name : B,ID:2
}
【问题讨论】:
-
您应该考虑使用CSVHelper 库来读取和处理CSV 文件。
-
解析第一行时(例如)parser.
ReadFields();会返回什么? -
那么如果
TextFieldParser类为您提供StreamReader.ReadLine()的确切结果,那么它的优势是什么? -
这个函数 ReadFields();将输出为 A,1。读取数据不是这里的问题,它只是对它的后处理