[英]Reading text data from tab delimited file without headers in C#
我想从 a.txt 文件中读取文本数据,其中的数据是制表符分隔的。 我正在粘贴下面的示例数据。 [1]: https://i.stack.imgur.com/t9cPt.png
现在我想要的是将数据读入一个没有标题的字符串类型列表。
我目前有以下代码:
var sepList = new List<string>();
// Read the file and display it line by line.
using (var file = new StreamReader(docPath))
{
string line;
while ((line = file.ReadLine()) != null)
{
var delimiters = '\t';
var segments = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (var segment in segments)
{
//Console.WriteLine(segment);
sepList.Add(segment);
}
}
}
任何帮助将不胜感激:)[![在此处输入图片描述][1]][1]
我想要的是将数据读入一个没有标题的字符串类型列表。
添加file.ReadLine();
在读取文件之前,它将跳过 header 或文件的第一行。
var sepList = new List<string>();
using (var file = new StreamReader(docPath))
{
// Skip the first line (the header)
file.ReadLine();
string line;
while ((line = file.ReadLine()) != null)
{
var delimiters = '\t';
var segments = line.Split(
delimiters, StringSplitOptions.RemoveEmptyEntries
);
foreach (var segment in segments)
{
// console.WriteLine(segment);
sepList.Add(segment);
}
}
}
你可以用一行得到你的结果。
var data = File.ReadLines(docPath)
.Skip(1)
.Select(x => x.Split(new char[] {'\t'},StringSplitOptions.RemoveEmptyEntries))
.SelectMany(k => k);
首先,我们使用 File.ReadLines 枚举文件中的行,创建一个序列,我们可以将其提供给以下命令。 然后我们跳过序列的第一行,对剩余的项目应用 Split 操作,得到另一个包含两个或更多值的序列,我们可以将这些值作为单个项目添加到分配给数据变量的 IEnumerable 中。 当然 ToList 会将 IEnumerable 实体化为最终处理数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.