[英]How to convert csv file's specific column to string List
Does anyone know how to convert a specific column in a csv file to string List ?有谁知道如何将 csv 文件中的特定列转换为字符串 List ? I am trying to have a 'contact number' list from csv file.我正在尝试从 csv 文件中获取“联系电话”列表。 (Please see my csv file in below) (请在下面查看我的 csv 文件)
List<string> contactNumberList = new List<string>();
-- contactNumberList.Add("1888714"); (Manual)
---contactNumberList.Add("1888759");(Manual)
"Email","Opt In Date","Opted Out","Opt In Details","Email Type","Opted Out Date","Opt Out Details","Contact Number","Salutation"
"test1@testApp.com","05/01/2014 11:23 AM","F","User Name: capn@goldpop.org.uk. IP Address: 62.213.118.139","0","","","1888714","Mrs Hall"
"test2@testApp.com","05/01/2014 11:23 AM","F","User Name: capntransfer@goldpop.org.uk. IP Address: 62.213.118.139","0","","","1888759","Mrs Heyworth"
For parsing CSVs I suggest using a ligrary as simply splitting by line /columns separator can bring to errors if the values are escaped.对于解析 CSV,我建议使用 ligrary,因为如果值被转义,简单地按行 / 列分隔符拆分可能会导致错误。
Ie IE
"Mr John, Bob Smith" “约翰先生,鲍勃·史密斯”
is a valid CSV as it is escaped with quotes.是一个有效的 CSV,因为它用引号转义。 But a Split function will stop working.但是拆分功能将停止工作。
One valid choice is LumenWorks (you can find it in NuGet).一个有效的选择是 LumenWorks(您可以在 NuGet 中找到它)。
Ie IE
using (var csv = new CsvReader(r, false, csvParserConfiguration.ColumnSeparator, '"', '"', '#', ValueTrimmingOptions.None))
{
// Read lines
while (csv.ReadNextRecord())
{
contactNumberList.Add[7];
}
}
逐行读取文件,用逗号分隔Split()
,选择所需的列,剪掉引号并添加到列表中?
Try this:尝试这个:
int columnId = 3;
string[] lines = File.ReadAllLines(@"C:\test.csv");
var list = lines.Select(line =>
{ var values = line.Split(';');
return values[columnId];
});
You could try the following:您可以尝试以下操作:
var reader = new StreamReader(File.OpenRead(@"C:\test.csv"));
List<string> contactNumbersList = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
contactNumbersList.Add(values[7]);
}
but better yet you could use a dedicated library like CSV Reader .但更好的是,您可以使用像CSV Reader这样的专用库。
IEnumerable<string> strings = System.IO.File.ReadAllLines({filepath})
.Select(x => x.Split(';')[{columnId}])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.