【问题标题】:StreamReader — File Parser — Check Line ContentsStreamReader — 文件解析器 — 检查行内容
【发布时间】:2012-09-28 09:54:32
【问题描述】:

我已成功让 C# StreamReader 工作:

using (StreamReader fileParser = new StreamReader(tbFileSelection.Text))
{
  String line = fileParser.ReadToEnd();
  Console.WriteLine(line);
}

我目前正在将文件的每一行写入控制台。我现在希望遍历每一行并查找一个特定的标签——如果该行以 [TAG1] 开头,则为 [TAG1]——我希望在控制台中显示整行。请注意,该文件不是基于 XML 的。任何人都可以提出这个想法的前进方向吗?我相信我需要对字符串 Line 进行标记?

【问题讨论】:

  • foreach (var line in File.ReadLines(path).Where(l=>l.StartsWith("[TAG1]"))) Console.WriteLine(line);

标签: c# tokenize streamreader


【解决方案1】:

您可以使用StartsWith 方法从行进行过滤:

lines = File.ReadLines(tbFileSelection.Text)
            .Where(line => line.StartsWith("[TAG1]"));

foreach (var line in lines)
{
    Console.WriteLine(line);
}

【讨论】:

  • “lines =”上下文中的行是数组吗?如果在 C# 中是这样,你如何声明一个不定长度的数组?
  • @JHarley1: 不,它是 IEnumerable,你可以使用 List 或动态长度
  • 对,我现在得到了: IEnumerable lines = File.ReadLines(tbFileSelection.Text).Where(line => line.StartsWith("[TAG1]")); foreach (line in lines) { Console.WriteLine(line);我只是对我的“线”定义有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 2017-10-28
  • 2019-11-22
  • 2011-02-16
  • 2019-03-04
  • 1970-01-01
相关资源
最近更新 更多