使用Streamreader跳过C#中的行时遇到问题

时间:2016-07-23 09:45:03

标签: c# streamreader

我在Streamreader中使用C#阅读文件时遇到问题,我正在阅读的文件中的换行符也被读入我的程序并在代码中引发了进一步的问题。

以下是我尝试阅读的文件示例。

Example,1,2,3
    <--- // Trying to skip these lines.
    <--- // Trying to skip these lines.
// MY COMMENTS.

以下是我目前用于检查换行符的代码。

if (line.StartsWith("//") || 
    line.StartsWith("\r\n") || 
    line.StartsWith("\n") || 
    line.StartsWith("\r") || 
    line.StartsWith(" ") || 
    line.StartsWith(Environment.NewLine) || 
    line.StartsWith(Environment.NewLine) || 
    line.StartsWith($" {Environment.NewLine}")) {

    // SKIP THE LINE.
    break;
}
// ADD TO ARRAY
  

我已尝试在line.StartsWith("")中检查if statement,   但这导致我的数组中没有添加任何值。

我需要更改哪些内容才能跳过这些内容?

3 个答案:

答案 0 :(得分:2)

https://msdn.microsoft.com/en-us/library/system.io.streamreader.readline(v=vs.110).aspx

  

一条线被定义为一个字符序列,后跟换行符   (“\ n”),回车(“\ r”)或马车回程   后跟换行符(“\ r \ n”)。 返回的字符串不会   包含终止回车符或换行符。归来了   如果到达输入流的末尾,则value为null。

本文可能有所帮助:http://www.dotnetperls.com/empty-string

尝试使用line.IsNullOrEmpty()(假设您在线上没有其他隐藏的空格)。

理论上,每个字符串'都以'开头',所以“”将与您读入的每一行/字符串相匹配。

        if ("Hello, World!".StartsWith(""))
            Console.WriteLine("Hello, World!");
        return;

打印出声明。

答案 1 :(得分:1)

即使你有一个答案(几个),我也会选择一些感觉更清洁的东西。&#34;

// Read all your lines:
string source = System.IO.File.ReadAllText(path_to_your_file);

// Split them on new lines, ignore any empty lines
var lines = source.Split(Environment.NewLine.ToCharArray()
                        , StringSplitOptions.RemoveEmptyEntries );

// Iterate over your `lines` here
// ...

答案 2 :(得分:0)

你试过string.IsNullOrWhiteSpace(stringValue)吗?你使用'StrereamReader.ReadLine()'吗?返回的字符串不包含换行符。