C# 读取文本文件中的特定行
好的,我有一个程序,需要从一个文本文件中读取,如下所示C# 读取文本文件中的特定行,c#,text-files,C#,Text Files,好的,我有一个程序,需要从一个文本文件中读取,如下所示 [Characters] John Alex Ben [Nationality] Australian American South African [Hair Colour] Brown Black Red 我想做的是,只有一个方法根据传递的参数读取节 这可能吗?如何实现 var sectionName = "[Nationality]"; string[] items = File.ReadLines(fileName)
[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
项目将包括:
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<string>
我知道这不是最好的方法,但如果你刚开始编程,你会更容易做到这一点。通过添加几行额外的代码,您可以创建一个从文本文件中提取特定块的方法
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];
}
}
我已经编辑了你的标题。请看,如果共识是否定的,他们就不应该这样做。你尝试了什么?你有什么问题?你是在问如何打开文件吗?如何读一行?如何在线路中循环?如何检查分区?它看起来像INI文件。为什么不使用INI文件解析器呢?好的,那么如何将项目转换为字符串[]?