阅读文本文件中的特定行

好的,我有一个程序,需要从一个看起来像这样的文本文件中读取

[Characters] John Alex Ben [Nationality] Australian American South African [Hair Colour] Brown Black Red 

我想要做的是只有一个方法根据传递的参数读取一个部分。

这可能吗?怎么样?

 var sectionName = "[Nationality]"; string[] items = File.ReadLines(fileName) //read file lazily .SkipWhile(line => line != sectionName) //search for header .Skip(1) //skip header .TakeWhile(line => !string.IsNullOrEmpty(line))//take until next header .ToArray(); //convert to array 

items将有:

 Australian American South African 

您可以使用LINQ这样做:

 var sectionCharacters = File.ReadLines(@"c:\myfile.txt") .SkipWhile(s => s != "[Characters]") // Skip up to the header .Skip(1) // Skip the header .TakeWhile(s => s.Length != 0) // Take lines until the blank .ToList(); // Convert the result to List 

我知道这不是最好的方法,但是如果你刚刚开始编程的话,对你来说会更容易。 通过向此添加几行代码,您可以创建一个从文本文件中提取特定块的方法。

 class Program { static void Main(string[] args) { Console.WriteLine(ExtractLine("fileName.txt", 4)); Console.ReadKey(); } static string ExtractLine(string fileName, int line) { string[] lines = File.ReadAllLines(fileName); return lines[line - 1]; } }