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