我正在将csv文件读入列表.由于每个文件包含许多行并且阅读耗时,我只需要检查每个文件的前100行.如何让Linq只读取前100行,然后继续下一个文件?
For(i=0;i<10;i++)
line_list = (from line in File.ReadLines(files[i])
let field = line.Split(',')
where field[2] == "Apple" && !field[3].Contains("Banana")
select field).ToList();
Run Code Online (Sandbox Code Playgroud)
您可以使用Enumerable.Take
仅前100行:
var first100Lines = File.ReadLines(path).Take(100);
Run Code Online (Sandbox Code Playgroud)
为了它的价值,这里是一体的:
List<List<string[]>> allFileLineColumns = files
.Select(fPath =>
File.ReadLines(fPath)
.Take(100)
.Select(l => new { Line=l, Cols=l.Split(',') })
.Where(x => x.Cols.Length >= 4 && x.Cols[2] == "Apple" && !x.Cols[3].Contains("Banana"))
.Select(x => x.Cols)
.ToList()
).ToList();
Run Code Online (Sandbox Code Playgroud)
虽然我会将它分成多个部分以提高可读性.
归档时间: |
|
查看次数: |
1834 次 |
最近记录: |