c# ループを終了した後のすべてのリスト項目の奇妙なリセット、

ロイドゥエック

私は 9,9 の行列があり、どこに 0 があるかを確認したいのですが、もし 0 が見つかったら、0 (i と j) と 1 ~ 9 の数字の場所を保持する 11 サイズの配列を作成し、それが追加されます。リストに追加すると、次の 0 が追加されます。

    public static void CheckandCreate()
    {
        int[] sector = new int[11];
        //setting the array to  1-9
        for (int i = 2; i < sector.Length; i++)
        {
            sector[i] = i - 1;
        }
        //looking for 0
        for (int i = 0; i < suduku.GetLength(0); i++)
        {
            for (int j = 0; j < suduku.GetLength(1); j++)
            {
                //finding 0
                if (suduku[i, j] == 0)
                {
                    sector[0] = i;
                    sector[1] = j;
                    sectorlist.Add(sector);
                    Console.WriteLine("Found Empty on " + i + " " + j);
                    //check to see array
                    sectorprinter(sector);
                    //check to if the array is on list and also print from list(check)
                    sectorprinter(sectorlist[sectorlist.IndexOf(sector)]);
                }
            }
            //check to see if its still keeps the same value as before,this is where it failes!
            Console.WriteLine();
            sectorprinter(sectorlist[3]);
            Console.WriteLine();
        }
        Console.WriteLine(sectorlist.Capacity);
        Console.WriteLine();
    }

それがコードであり、これがリスト作成です:

   static List<int[]> sectorlist = new List<int[]>();

結局、すべてのセクター (すべての配列) を印刷します。...

これは出力です:

           Found Empty on 0 1
           0 1 1 2 3 4 5 6 7 8 9
           0 1 1 2 3 4 5 6 7 8 9
           Found Empty on 0 2
           0 2 1 2 3 4 5 6 7 8 9
           0 2 1 2 3 4 5 6 7 8 9
           Found Empty on 0 4
           0 4 1 2 3 4 5 6 7 8 9
           0 4 1 2 3 4 5 6 7 8 9
           Found Empty on 0 6
           0 6 1 2 3 4 5 6 7 8 9
           0 6 1 2 3 4 5 6 7 8 9
           Found Empty on 0 7
           0 7 1 2 3 4 5 6 7 8 9
           0 7 1 2 3 4 5 6 7 8 9

           0 7 1 2 3 4 5 6 7 8 9

           Found Empty on 1 0
           1 0 1 2 3 4 5 6 7 8 9
           1 0 1 2 3 4 5 6 7 8 9
           Found Empty on 1 1
           1 1 1 2 3 4 5 6 7 8 9
           1 1 1 2 3 4 5 6 7 8 9
           Found Empty on 1 2
           1 2 1 2 3 4 5 6 7 8 9
           1 2 1 2 3 4 5 6 7 8 9
           Found Empty on 1 3
           1 3 1 2 3 4 5 6 7 8 9
           1 3 1 2 3 4 5 6 7 8 9
           Found Empty on 1 4
           1 4 1 2 3 4 5 6 7 8 9
           1 4 1 2 3 4 5 6 7 8 9
           Found Empty on 1 5
           1 5 1 2 3 4 5 6 7 8 9
           1 5 1 2 3 4 5 6 7 8 9
           Found Empty on 1 7
           1 7 1 2 3 4 5 6 7 8 9
           1 7 1 2 3 4 5 6 7 8 9
           Found Empty on 1 8
           1 8 1 2 3 4 5 6 7 8 9
           1 8 1 2 3 4 5 6 7 8 9

           1 8 1 2 3 4 5 6 7 8 9

           Found Empty on 2 0
           2 0 1 2 3 4 5 6 7 8 9
           2 0 1 2 3 4 5 6 7 8 9
           Found Empty on 2 2
           2 2 1 2 3 4 5 6 7 8 9
           2 2 1 2 3 4 5 6 7 8 9
           Found Empty on 2 3
           2 3 1 2 3 4 5 6 7 8 9
           2 3 1 2 3 4 5 6 7 8 9
           Found Empty on 2 4
           2 4 1 2 3 4 5 6 7 8 9
           2 4 1 2 3 4 5 6 7 8 9
           Found Empty on 2 5
           2 5 1 2 3 4 5 6 7 8 9
           2 5 1 2 3 4 5 6 7 8 9
           Found Empty on 2 8
           2 8 1 2 3 4 5 6 7 8 9
           2 8 1 2 3 4 5 6 7 8 9

           2 8 1 2 3 4 5 6 7 8 9

           Found Empty on 3 1
           3 1 1 2 3 4 5 6 7 8 9
           3 1 1 2 3 4 5 6 7 8 9
           Found Empty on 3 3
           3 3 1 2 3 4 5 6 7 8 9
           3 3 1 2 3 4 5 6 7 8 9
           Found Empty on 3 5
           3 5 1 2 3 4 5 6 7 8 9
           3 5 1 2 3 4 5 6 7 8 9
           Found Empty on 3 8
           3 8 1 2 3 4 5 6 7 8 9
           3 8 1 2 3 4 5 6 7 8 9

           3 8 1 2 3 4 5 6 7 8 9

           Found Empty on 4 0
           4 0 1 2 3 4 5 6 7 8 9
           4 0 1 2 3 4 5 6 7 8 9
           Found Empty on 4 1
           4 1 1 2 3 4 5 6 7 8 9
           4 1 1 2 3 4 5 6 7 8 9
           Found Empty on 4 2
           4 2 1 2 3 4 5 6 7 8 9
           4 2 1 2 3 4 5 6 7 8 9
           Found Empty on 4 3
           4 3 1 2 3 4 5 6 7 8 9
           4 3 1 2 3 4 5 6 7 8 9
           Found Empty on 4 5
           4 5 1 2 3 4 5 6 7 8 9
           4 5 1 2 3 4 5 6 7 8 9
           Found Empty on 4 6
           4 6 1 2 3 4 5 6 7 8 9
           4 6 1 2 3 4 5 6 7 8 9
           Found Empty on 4 7
           4 7 1 2 3 4 5 6 7 8 9
           4 7 1 2 3 4 5 6 7 8 9
           Found Empty on 4 8
           4 8 1 2 3 4 5 6 7 8 9
           4 8 1 2 3 4 5 6 7 8 9

           4 8 1 2 3 4 5 6 7 8 9

           Found Empty on 5 0
           5 0 1 2 3 4 5 6 7 8 9
           5 0 1 2 3 4 5 6 7 8 9
           Found Empty on 5 3
           5 3 1 2 3 4 5 6 7 8 9
           5 3 1 2 3 4 5 6 7 8 9
           Found Empty on 5 5
           5 5 1 2 3 4 5 6 7 8 9
           5 5 1 2 3 4 5 6 7 8 9
           Found Empty on 5 7
           5 7 1 2 3 4 5 6 7 8 9
           5 7 1 2 3 4 5 6 7 8 9

           5 7 1 2 3 4 5 6 7 8 9

           Found Empty on 6 0
           6 0 1 2 3 4 5 6 7 8 9
           6 0 1 2 3 4 5 6 7 8 9
           Found Empty on 6 3
           6 3 1 2 3 4 5 6 7 8 9
           6 3 1 2 3 4 5 6 7 8 9
           Found Empty on 6 4
           6 4 1 2 3 4 5 6 7 8 9
           6 4 1 2 3 4 5 6 7 8 9
           Found Empty on 6 5
           6 5 1 2 3 4 5 6 7 8 9
           6 5 1 2 3 4 5 6 7 8 9
           Found Empty on 6 6
           6 6 1 2 3 4 5 6 7 8 9
           6 6 1 2 3 4 5 6 7 8 9
           Found Empty on 6 8
           6 8 1 2 3 4 5 6 7 8 9
           6 8 1 2 3 4 5 6 7 8 9

           6 8 1 2 3 4 5 6 7 8 9

           Found Empty on 7 0
           7 0 1 2 3 4 5 6 7 8 9
           7 0 1 2 3 4 5 6 7 8 9
           Found Empty on 7 1
           7 1 1 2 3 4 5 6 7 8 9
           7 1 1 2 3 4 5 6 7 8 9
           Found Empty on 7 3
           7 3 1 2 3 4 5 6 7 8 9
           7 3 1 2 3 4 5 6 7 8 9
           Found Empty on 7 4
           7 4 1 2 3 4 5 6 7 8 9
           7 4 1 2 3 4 5 6 7 8 9
           Found Empty on 7 5
           7 5 1 2 3 4 5 6 7 8 9
           7 5 1 2 3 4 5 6 7 8 9
           Found Empty on 7 6
           7 6 1 2 3 4 5 6 7 8 9
           7 6 1 2 3 4 5 6 7 8 9
           Found Empty on 7 7
           7 7 1 2 3 4 5 6 7 8 9
           7 7 1 2 3 4 5 6 7 8 9
           Found Empty on 7 8
           7 8 1 2 3 4 5 6 7 8 9
           7 8 1 2 3 4 5 6 7 8 9

           7 8 1 2 3 4 5 6 7 8 9

           Found Empty on 8 1
           8 1 1 2 3 4 5 6 7 8 9
           8 1 1 2 3 4 5 6 7 8 9
           Found Empty on 8 2
           8 2 1 2 3 4 5 6 7 8 9
           8 2 1 2 3 4 5 6 7 8 9
           Found Empty on 8 4
           8 4 1 2 3 4 5 6 7 8 9
           8 4 1 2 3 4 5 6 7 8 9
           Found Empty on 8 6
           8 6 1 2 3 4 5 6 7 8 9
           8 6 1 2 3 4 5 6 7 8 9
           Found Empty on 8 7
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9

           8 7 1 2 3 4 5 6 7 8 9

           64

           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           8 7 1 2 3 4 5 6 7 8 9
           Press any key to continue . . .

何が悪かったのか?!

マシューワトソン

これを行うとき:

sectorlist.Add(sector);

sector配列のコピーではなく配列への参照を追加しています後でその配列を変更するためsectorlist、それらは同じ配列であるため追加した配列も変更されます

これを修正するには、配列のコピーを作成し、そのコピーを に追加しますsectorlist

sectorlist.Add(sector.ToArray());

その変更後にコードが正しく動作するとは言いませんが、少なくともその特定のバグは修正されます。

それ以外は、デバッガーでコードをシングル ステップ実行することをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

C#すべてのリストビューグループの最初の項目を除くすべての項目を確認します

分類Dev

リストビューc#からすべてのチェックを外した項目を削除する方法

分類Dev

すべての要素をポップした後、奇妙な動作をするCのキュー

分類Dev

ドロップダウンリストの選択した項目を、Windowsフォームc#の一致する文字列値に設定します

分類Dev

cの項目を削除した後、ハッシュテーブルに適切に設定できるように、リンクリストのポインタのアドレスを取得するにはどうすればよいですか?

分類Dev

C#ドロップダウンリストの項目を変更する

分類Dev

c以上のリストのすべての可能なサブセットをカウントする方法

分類Dev

必要なライブラリを追加した後、TShark C ++ソースファイルを使用してメッセージを分析する際の未定義の参照

分類Dev

ifステートメントの後に変数がリセットされたのはなぜですか?(C ++)

分類Dev

純粋なc ++(クロスプラットフォーム)を使用して、特定のパス内のすべてのディレクトリ/ファイルおよびサブディレクトリを取得します

分類Dev

オートコンプリートを使用してテキストボックス内のすべてのテキストを選択します(C#winforms)

分類Dev

プライベートメソッドの問題c#(ツールストリップメニュー項目から色を変更)

分類Dev

リストC#の項目の最初と最後の文字に基づいて区別する

分類Dev

リストに関して要素のセットを取得するためのC#でのLinqクエリ

分類Dev

Cでn項目のkとmの組み合わせのすべての可能なサブセットを作成する

分類Dev

cのn項目のうち少なくともkを使用して、最終製品の予想コストを計算します。

分類Dev

C#のグローバルホットキーを使用してアプリケーションのフォーカスを前後に変更する方法

分類Dev

cコードのforループで変数をリセットします

分類Dev

C#で、キーのリストを使用して、LINQを使用して、並べ替えられたリストから要素のリストを取得します

分類Dev

すべての SQL Server データベースの値をリセットする c#?

分類Dev

foreachループを1列、別のforeachを2番目の列に使用して、2番目のループが最初に上書きされないようにC#リストビューを埋めるにはどうすればよいですか?

分類Dev

スレッドが終了する前にmain()を終了しているときに、Cのマルチスレッドアプリケーションでアクセス違反が発生するのはなぜですか?

分類Dev

C ++で作成したすべてのプロセスのPIDを取得し、特定の時間後にそれぞれを終了したい

分類Dev

C#は、クラスに必要なすべてのプロパティのリストを返します

分類Dev

MSAL:AADB2C90146: 'リクエストで提供されたOpenidプロファイル'は、サポートされていないアクセストークンに複数のリソースを指定しています '

分類Dev

Cソケット:すべてのデータを受信した後、クライアントを終了します

分類Dev

C#のリスト内のリストをループします

分類Dev

サブプロセスのCtrl + cは、スクリプトの早い段階でnohupされたプロセスを強制終了します

分類Dev

cのディレクトリをウォークスルーし、すべてのファイル名とアクセス許可を出力する方法

Related 関連記事

  1. 1

    C#すべてのリストビューグループの最初の項目を除くすべての項目を確認します

  2. 2

    リストビューc#からすべてのチェックを外した項目を削除する方法

  3. 3

    すべての要素をポップした後、奇妙な動作をするCのキュー

  4. 4

    ドロップダウンリストの選択した項目を、Windowsフォームc#の一致する文字列値に設定します

  5. 5

    cの項目を削除した後、ハッシュテーブルに適切に設定できるように、リンクリストのポインタのアドレスを取得するにはどうすればよいですか?

  6. 6

    C#ドロップダウンリストの項目を変更する

  7. 7

    c以上のリストのすべての可能なサブセットをカウントする方法

  8. 8

    必要なライブラリを追加した後、TShark C ++ソースファイルを使用してメッセージを分析する際の未定義の参照

  9. 9

    ifステートメントの後に変数がリセットされたのはなぜですか?(C ++)

  10. 10

    純粋なc ++(クロスプラットフォーム)を使用して、特定のパス内のすべてのディレクトリ/ファイルおよびサブディレクトリを取得します

  11. 11

    オートコンプリートを使用してテキストボックス内のすべてのテキストを選択します(C#winforms)

  12. 12

    プライベートメソッドの問題c#(ツールストリップメニュー項目から色を変更)

  13. 13

    リストC#の項目の最初と最後の文字に基づいて区別する

  14. 14

    リストに関して要素のセットを取得するためのC#でのLinqクエリ

  15. 15

    Cでn項目のkとmの組み合わせのすべての可能なサブセットを作成する

  16. 16

    cのn項目のうち少なくともkを使用して、最終製品の予想コストを計算します。

  17. 17

    C#のグローバルホットキーを使用してアプリケーションのフォーカスを前後に変更する方法

  18. 18

    cコードのforループで変数をリセットします

  19. 19

    C#で、キーのリストを使用して、LINQを使用して、並べ替えられたリストから要素のリストを取得します

  20. 20

    すべての SQL Server データベースの値をリセットする c#?

  21. 21

    foreachループを1列、別のforeachを2番目の列に使用して、2番目のループが最初に上書きされないようにC#リストビューを埋めるにはどうすればよいですか?

  22. 22

    スレッドが終了する前にmain()を終了しているときに、Cのマルチスレッドアプリケーションでアクセス違反が発生するのはなぜですか?

  23. 23

    C ++で作成したすべてのプロセスのPIDを取得し、特定の時間後にそれぞれを終了したい

  24. 24

    C#は、クラスに必要なすべてのプロパティのリストを返します

  25. 25

    MSAL:AADB2C90146: 'リクエストで提供されたOpenidプロファイル'は、サポートされていないアクセストークンに複数のリソースを指定しています '

  26. 26

    Cソケット:すべてのデータを受信した後、クライアントを終了します

  27. 27

    C#のリスト内のリストをループします

  28. 28

    サブプロセスのCtrl + cは、スクリプトの早い段階でnohupされたプロセスを強制終了します

  29. 29

    cのディレクトリをウォークスルーし、すべてのファイル名とアクセス許可を出力する方法

ホットタグ

アーカイブ