如何从C#中的字符串中获取特定行?

Tom*_*ski 8 c# string substring

我在C#中有一个字符串,并希望从特定行获取文本,例如65.如果文件没有那么多行,我想得到"".这该怎么做?

Eve*_*zon 17

快速简单,假设\ r \n或\n是你的换行序列

string GetLine(string text, int lineNo)
{
  string[] lines = text.Replace("\r","").Split('\n');
  return lines.Length >= lineNo ? lines[lineNo-1] : null;
}
Run Code Online (Sandbox Code Playgroud)

  • String.Split()只接受char,如果你传递Environment.NewLine.ToCharArray(),则每隔一行都是空的(编辑:在Windows中,Unix将正常工作) (2认同)
  • StringSplitOptions.RemoveEmptyEntries (2认同)

Pau*_*ane 6

private static string ReadLine(string text, int lineNumber)
{
    var reader = new StringReader(text);

    string line;
    int currentLineNumber = 0;

    do
    {
        currentLineNumber += 1;
        line = reader.ReadLine();
    }
    while (line != null && currentLineNumber < lineNumber);

    return (currentLineNumber == lineNumber) ? line :
                                               string.Empty;
}
Run Code Online (Sandbox Code Playgroud)