首选的查询方法

时间:2013-03-25 21:35:35

标签: c# csv

按列和查询列读取变量的更佳方法是什么。这是我目前正在做的事情。

var lines = File.ReadAllLines("readme.csv").Select(a => a.Split(','));

//load columns into variables
var col1 = from line in lines select line[1];
var col2 = from line in lines select line[2];
var col3 = from line in lines select line[3];
var col4 = from line in lines select line[4];

//query column 1
foreach (string line in col1)
{ //query if ...
}
//query column 2
foreach (string line in col2)
{ //query if ...
}
//query column 3
foreach (string line in col3)
{ //query if...
}

2 个答案:

答案 0 :(得分:1)

  

按列和查询列读取变量的更佳方法是什么。

您正在尝试解决之前已解决的问题。 CSV文件与转义和引用有很多细微差别。

我建议使用Code Project中的CSV Reader。

http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader

我已经广泛使用了非常大的数据文件(多GB)。

使用BufferedStream获得最佳效果:

using (FileStream fs = File.Open(csvPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (BufferedStream bs = new BufferedStream(fs))
using (CsvReader csv = new CsvReader(new StreamReader(bs), true))

答案 1 :(得分:1)

ToList()可以防止在注释

中回答的重复循环