C#将文件内容存储到List <string>

时间:2015-07-08 07:15:36

标签: c# wpf

我想要实现的目标:

想要阅读文本文件并将其存储在字符串列表中。 如果使用正则表达式

找到,请使用第二个字符串列表进行保存

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

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

让我们说有一个名为“原因”的文字。在某些行中。我想要的是现在遍历列表或行很简单的行并将行存储在新列表中。

5 个答案:

答案 0 :(得分:2)

您可以像这样过滤列表

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

答案 1 :(得分:1)

您是否考虑过使用File.ReadAllLines

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

或者更符合您要求的东西。

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

答案 2 :(得分:0)

所以也许你想要这些东西?

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

现在你的行包含单词&#34;原因&#34;在名为causes

的数组中

希望,这会让你开始。

答案 3 :(得分:0)

要将所有行读入List,您可以编写以下内容:

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

现在,如果您想要一个包含“cause”一词的所有行的新列表,您可以使用以下linq-query:

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

答案 4 :(得分:0)

以下应该工作

使用(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);
                }
            }
        }