1

我有一个文本文件,其中包含一些行中的信息。我想通过跳过几行来阅读它。例如,假设我有 1-10 行。当我阅读时,我想通过以下方式阅读它,

1 <- i wanna read this
2 <- Skip this
3 <- read this 
4 <- Skip this
5 <- read this
6 <- Skip this
7 <- read this
8 <- Skip this
9 <- read this
10 <- Skip this

你得到正确的模式吗?我如何使用 c# 来实现这一点?我也想得到我稍后跳过的行。有任何想法吗?

4

3 回答 3

5

Where您可以使用包含索引的 LINQ 的重载,并用于%过滤每隔一行:

var everyOtherLine = System.IO.File.ReadAllLines("path")
                                   .Where((s, i) => i % 2 == 0);
于 2012-06-22T20:32:22.960 回答
1

伪代码:

for (i=0; i<filelines.Count; i++)
{
 if (i mod 2 == 1) oddlines.Add(filelines[i]);
}

编辑:dbaseman 做到了,谢谢。

于 2012-06-22T20:31:31.687 回答
1

编辑使用查找偶数和奇数行。

只是循环并根据您的标准添加到结果集中?

var lines = new Dictionary<int, List<string>>() {
    { 0, new List<string>() },
    { 1, new List<string>() }
};

using (StreamReader sr = new StreamReader(filename)) {
    int i=0;
    while (!sr.EndOfStream) {
        string line = sr.ReadLine();
        lines[i%2].Add(line);
    }
}

然后lines[0]得到偶数行,而lines[1]得到奇数行。

于 2012-06-22T20:30:59.407 回答