如何直接读取制表符分隔的源文件中具有最大制表符分隔符的行

时间:2014-03-28 10:01:14

标签: c# parsing split tab-delimited

目前我正在逐行读取制表符分隔文件,拆分每行中的项目,并通过硬编码值50查找带有50个项目的制表符分隔行,然后创建 数据表。

问题:面对 - 制表符分隔的源文件在分割后有时带有制表符分隔的行,有时会有50或53个项目。需要直接读取在制表符分隔的源文件中具有最大制表符分隔符的行,然后继续我的逻辑。

我的C#代码

using (var sr = new StreamReader(sourceFileFullName))
{
  string line = null;
  while ((line = sr.ReadLine()) != null)
  {
    var items = line.Split(new[] { '\t', '\n' }).ToArray();

    if (items.Length != 50)
    continue;
  //Rest of my code to create datatable for the items after splitting in tab delimitedline
  }
}

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码段

string content = "";
using (var reader = new StreamReader("C:\\temp\\abc.txt"))
{
    content = reader.ReadToEnd();
}
if (!string.IsNullOrEmpty(content))
{
    var value = content.Split('\n').OrderByDescending(y => y.Split('\t').Count()).Take(1);
}