如何通过一些行读取文本文件行?

时间:2012-06-22 20:27:39

标签: c# visual-studio-2010

我有一个文本文件,其中包含一些行内容。我想通过传递一些线条来阅读它。例如,假设我的行数为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#实现这个目标?而且我想得到我以后跳过的台词。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

您可以使用包含索引的LINQ Where的重载,并使用%过滤所有其他行:

var everyOtherLine = System.IO.File.ReadAllLines("path")
                                   .Where((s, i) => i % 2 == 0);

答案 1 :(得分: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] 获得偶数行,而行[1] 可以获得奇数行。

答案 2 :(得分:1)

伪代码:

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

编辑:dbaseman做得很准确,谢谢。