c#将文件内容存储到List

本文关键字:List String 存储 文件 | 更新日期: 2023-09-27 18:01:45

我想达到的目标:

想要读取文本文件并将其存储在List of Strings中。使用第二个字符串列表保存使用regex

找到的字符串

我不知道如何解决这个问题,但这就是我目前所做的。

using (StreamReader content = new StreamReader(@file_To_Read))
{
 List <String> newLine = new List <String> ();
 string line;
    while (line = content.ReadLine()) != null) 
 //add line to List
  newLine.Add(line);
}

假设在某些行中有称为"cause"的文本。我现在想要的是遍历列表或行,只要是容易的,并将行存储在一个新的列表中。

c#将文件内容存储到List<String>中

您可以像这样筛选列表

List<string> newlist = newLine.Where(x => x.Contains("your string to match")).ToList();

您考虑过使用File.ReadAllLines吗?

string[] lines = System.IO.File.ReadAllLines("your_file_path.txt");

或者更符合你的要求。

List<string> lines = System.IO.File.ReadAllLines("your_file_path.txt").ToList();

也许你想要这样的东西?

string[] lines = File.ReadAllLines(filePath); //reads all the lines in the file into the array
string[] causes = lines.Where(line => line.ToLowerInvariant().Contains("causes")).ToArray(); //uses LINQ to filter by predicate

现在在名为causes

的数组中有包含单词"causes"的行

希望这能让你开始。

要读取List中的所有行,可以这样写:

List<string> lines = File.ReadAllLines(@file_To_Read).ToList();

现在,如果你想要一个包含'causes'这个词的所有行的新列表,你可以使用下面的linq-query:

List<string> causes = lines.Where(line => line.Contains("causes").ToList();

下面应该可以工作

using (StreamReader content = new StreamReader("FileName")){

            List<String> newLine = new List<String>();
            while( ! content.EndOfStream)
            {
                String line = content.ReadLine();                
                if (line.Contains("causes"))
                {
                    //add line to List
                    newLine.Add(line);
                }
            }
        }