如何在C#中获取字符串中特定文本的行号

How to get the line number of specific text in string in c#(如何在C#中获取字符串中特定文本的行号)
本文介绍了如何在C#中获取字符串中特定文本的行号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字符串,其中有很多行。现在根据我的要求,我必须在该字符串中搜索子字符串(文本),并找出该子字符串(文本)在该字符串中所在的行号。

获得行号后,我必须阅读该行并了解其中哪些内容是字符,哪些是整数或数字。

这是我用来读取特定行的代码。

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;
}

但是如何搜索包含特定文本(子串)的行号?

推荐答案

好的,我来简化一下。如何获取特定文本的行号 在C#中的字符串中

然后您可以使用此方法:

public static int GetLineNumber(string text, string lineToFind, StringComparison comparison = StringComparison.CurrentCulture)
{
    int lineNum = 0;
    using (StringReader reader = new StringReader(text))
    {
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            lineNum++;
            if(line.Equals(lineToFind, comparison))
                return lineNum;
        }
    }
    return -1;
}

这篇关于如何在C#中获取字符串中特定文本的行号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)