Linqパターンマッチング問題

c# linq
Linqパターンマッチング問題

以下のコードは、ファイルを検索してパターンが一致するかどうかを確認し、「result」変数にファイルオフセットを保存します。 次に、 ‘result’変数を循環して正常に機能したオフセットを表示するfor eachループがありました…​ それまで、各オフセットでファイルの内容を読み取り、各読み取りで計算を実行してコンソールに出力するコードがいくつかありました。

何らかの理由で、for eachループは、他のすべてのオフセットを継続する代わりに、最初の計算のみを出力します。

各ループのこれが最初のオフセットで停止している理由の助けはありますか?

前もって感謝します

 byte[] pattern = 00 00 00 08 00;
 byte[] file = "C:\\123.cfg";

 var result = Enumerable.Range(0, file.Length - pattern.Length + 1)
                   .Where(i => pattern.Select((b, j) => new { j, b })
                                      .All(p => file[i + p.j] == p.b))
                   .Select(i => i + pattern.Length - 1);


foreach (var value in result) {

    int startaddress1 = value + 1;
    int EndAddress1 = value + 4;

    int startaddress2 = EndAddressLong + 1;
    int EndAddress2 = EndAddressLong + 4;

    MyGlobals.123_filepath = "C:\\123.cfg";

    ///////////////////////////// Read in the selected //////////////

    BinaryReader br = new BinaryReader(File.OpenRead(MyGlobals.123_filepath),
    System.Text.Encoding.BigEndianUnicode);

    for (int i = startaddress1; i <= EndAddress2; i++)
    {
        br.BaseStream.Position = i;
        MyGlobals.Hexbytes += br.ReadByte().ToString("X2") + ",";
    }


}

  1  0


ベストアンサー

あなたの問題は `Console.ReadKey()`にあり、 `foreach`ループを継続するためにキーを押す必要があると思います

2


ループが1回の反復後に終了する理由として考えられる理由は1つだけです。

  • 結果には内部に1つの値しかありません

0


タイトルとURLをコピーしました