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 のオーバーロードを使用%して、1 行おきにフィルター処理することができます。

var everyOtherLine = System.IO.File.ReadAllLines("path")
                                   .Where((s, i) => i % 2 == 0);
于 2012-06-22T20:32:22.960 に答える
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 に答える
1

擬似コード:

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

編集:dbasemanは正確にそれを行いました、ありがとう。

于 2012-06-22T20:31:31.687 に答える