Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过传递一些行来读取文本文件行?_C#_Visual Studio 2010 - Fatal编程技术网

C# 如何通过传递一些行来读取文本文件行?

C# 如何通过传递一些行来读取文本文件行?,c#,visual-studio-2010,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

我有一个文本文件,其中包含一些行中的信息。我想读几行。例如,假设我有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
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);
    }
}
var行=新字典(){
{0,new List()},
{1,新列表()}
};
使用(StreamReader sr=新StreamReader(文件名)){
int i=0;
而(!sr.EndOfStream){
字符串行=sr.ReadLine();
行[i%2]。添加(行);
}
}
然后,第[0]行将获得偶数行,第[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);
    }
}
var行=新字典(){
{0,new List()},
{1,新列表()}
};
使用(StreamReader sr=新StreamReader(文件名)){
int i=0;
而(!sr.EndOfStream){
字符串行=sr.ReadLine();
行[i%2]。添加(行);
}
}
然后第[0]行得到偶数行,第[1]行得到奇数行。

伪代码:

for (i=0; i<filelines.Count; i++)
{
 if (i mod 2 == 1) oddlines.Add(filelines[i]);
}
用于(i=0;i伪代码:

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

对于(i=0;i您可以使用LINQ
的重载,其中
包括索引,并使用
%
每隔一行过滤一次:

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

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

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

你熟悉模块化数学吗?如果你%2你的行号,你可以找出哪些是奇数,哪些是偶数。(只是一个提示…)实际上没有尝试过任何东西。我想不出任何东西。你熟悉模块化数学吗?如果你%2你的行号,你可以找出哪些是奇数,哪些是偶数。(只是一个提示…)实际上我还没有试过。我想不出有什么办法。如果OP想以后读跳过的行,也许她可以同时把这两行读到内存中。@BenSchwehn good call,updated。老实说,虽然我喜欢Bort的答案,但它更可读。如果OP想以后读跳过的行,也许她可以同时把这两行读到内存中。@BenSchwehn good call,updated。老实说,虽然我喜欢Bort的答案,但它更具可读性。我不明白这个解决方案。有没有更简单的方法?哪一部分不清楚?
其中
只返回通过给定条件的值。本例中的条件是行号为偶数的行(
I%2==0
)。这会得到第一个、第三个等。line我会尝试一下,让你知道如果比这更简单,我会感到震惊。我不明白这个解决方案。有没有更简单的方法?哪部分不清楚?
其中
只返回通过给定条件的值。在这种情况下,条件是行号为偶数的行(
i%2==0
)。这将为您提供第一个、第三个等。我将尝试这样做,并告诉您,如果变得比这更简单,我会感到震惊。