首选的查询方式
本文关键字:方式 查询 | 更新日期: 2023-09-27 18:05:43
按列和查询列读入变量的更优方法是什么?这是我目前正在做的。
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...
}
按列和查询列读入变量的更优方法是什么?
你正在尝试解决一个以前已经解决过的问题。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))
ToList()防止重复循环,如注释