c# - 从文件中读取特定行

标签 c# asp.net readline

我正在尝试获取包含特定单词的行之前的行列表。这是我的脚本:

private static void Main(string[] args)
{
    int counter = 0;
    string line;

    System.IO.StreamReader file = new System.IO.StreamReader("E:\\overview2.srt");
    List<string> lines = new List<string>();
    while ((line = file.ReadLine()) != null)
    {
        if (line.Contains("medication"))
        {


            int x = counter - 1;
            Console.WriteLine(x); // this will write the line number not its contents

        }

        counter++;
    }

    file.Close();
}

最佳答案

使用 LINQ 方法语法:

var lines = File.ReadLines("E:\\overview2.srt")
        .Where(line => line.Contains("medication"))
        .ToList();

和 LINQ 关键字语法:

var lines = (
    from line in File.ReadLines("E:\\overview2.srt")
    where line.Contains("medication")
    select line
).ToList();

如果您需要数组,请使用 .ToArray() 而不是 .ToList()

此外,如果您只需要迭代一次各行,请不要使用 ToArrayToList:

var query = 
    from line in File.ReadLines("E:\\overview2.srt")
    where line.Contains("medication")
    select line;
foreach (var line in query) {
    Console.WriteLine(line);
}

关于c# - 从文件中读取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088894/

相关文章:

c# - 具有类层次结构的 NHibernate 映射,其基类是抽象的且鉴别器不是字符串

c# MVC 路由 - 多条路由

c# - Razor HTML Helpers 在 Nop Commerce 插件中给出智能感知错误

python read() from stdout 比逐行读取慢得多(吞咽?)

c++ - QT逐行读取文件

c# - 如何读取 .Net 程序中生成的堆栈跟踪或错误信息以查找异常的根本原因

c# - 如何替换 Entity Framework FirstOrDefaultAsync

asp.net mvc 2 Html.RenderPartial CSS

ASP.NET/IIS : 404 for all file types

Javascript:有没有办法清除用户输入的历史记录?