【发布时间】:2024-05-03 22:15:06
【问题描述】:
我有一个当前读取所有行的 .csv 文件:
string csv = File.ReadAllText(@inputfile);
假设该文件中有 100 行。我只想从第二行到第 50 行阅读它。如何在 C# 中做到这一点?
【问题讨论】:
我有一个当前读取所有行的 .csv 文件:
string csv = File.ReadAllText(@inputfile);
假设该文件中有 100 行。我只想从第二行到第 50 行阅读它。如何在 C# 中做到这一点?
【问题讨论】:
您可以在 LINQ 中使用ReadLines 方法:
File.ReadLines(inputFile).Skip(2).Take(48);
【讨论】:
试试这个:
var lines = File.ReadLines("inputfile.csv").Skip(1).Take(49);
根据所有 cmets 修改答案
【讨论】:
string line = File.ReadLines(@inputfile).Skip(2).Take(50); 这是完全有效的。为什么你认为 C# 不能那样工作?
IEnumerable<string> 不能分配给string。 File.ReadLines(filename) 返回 IEnumerable<string>,通过关联,.Skip(2) 和 .Take(50) 也是如此。另外,如果有人想知道,我不是拒绝 saravanakumar 答案的人。
你可以读完所有行,跳过第一行,取剩下的 49 行
List<String> lines = File.ReadAllLines(@inputFile).Skip(1).Take(49).ToList()
【讨论】:
ReadLines 在 Selman 的答案中更好,因为它不必将整个文件读入内存。