1

假设我有一个 txt 文件,例如:

%Title
%colaborations                 Destination
1                              123
2                              456
3                              555
%my name                       Destination
Joe doe $re                    Washington
Marina Panett $re              Texas
..
Laura Sonning $mu              New York
%other stuff

如何保存在数组中

array{
      ("Joe doe $re"), 
      ("Marina Panett $re"),
     ...,
      ("Laura Sonning $mu")
    }

因为我需要跳过:

%Title
%colaborations                 Destination
1                              123
2                              456
3                              555

直到我找到

%my name                       Destination

我会开始阅读直到文件结束,否则我会找到一些东西"%"

我正在考虑使用string txt = System.IO.File.ReadAllText("file.txt");,但我认为阅读所有 txt 不是一个好主意,因为我只需要一些部分......

4

2 回答 2

3

您可以使用Enumerable.SkipWhile直到找到您要查找的内容:

string[] relevantLines = File.ReadLines(path)
    .SkipWhile(l => l != "%my name                       Destination")
    .Skip(1)
    .TakeWhile(l =>!l.StartsWith("%"))
    .ToArray();

注意File.ReadLines不需要读取整个文件。它类似于StreamReader.

于 2013-09-20T22:19:04.603 回答
1

读取每一行,一旦该行包含“%my name”,然后用空格分割该行。

于 2013-09-20T22:16:23.070 回答