我有一串长度未知的

它是格式

\nline
\nline
\nline

不知道要多长时间我才可以取字符串的最后10行
用“\n”分隔的行

最佳答案

随着字符串变大,避免处理无关紧要的字符变得越来越重要。使用string.Split的任何方法效率低下,因为必须处理整个字符串。一个有效的解决方案将必须从后面贯穿字符串。这是一个正则表达式方法。

请注意,它返回List<string>,因为在返回结果之前需要反转结果(因此使用Insert方法)

private static List<string> TakeLastLines(string text, int count)
{
    List<string> lines = new List<string>();
    Match match = Regex.Match(text, "^.*$", RegexOptions.Multiline | RegexOptions.RightToLeft);

    while (match.Success && lines.Count < count)
    {
        lines.Insert(0, match.Value);
        match = match.NextMatch();
    }

    return lines;
}

关于c# - 取字符串C#的最后n行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11942885/

10-11 23:03
查看更多