0

Invalid Operation Error次のコードを取得しています。

 int m = l_score.Min();

リストはどこにl_scoreありますかint。なぜこれが起こるのでしょうか?

編集:コード

 List<int> l_origin = new List<int>();
 List<int> l_k = new List<int>();
 List<int> l_score = new List<int>();



 for (int i = 0; i < 9; i++)
        {
            if (box_matrix[i, 5] == 0 | box_matrix[i, 5] == 1 | box_matrix[i, 5] == 2)
            {

                for (int k = 1; k < 5; k++)
                {

                    if (box_matrix[i, k] == 0)
                    {
                        int scr = 9;
                        l_origin.Add(box_matrix[i, 0]);
                        l_k.Add(k);
                        scr = score_the_move(box_matrix[i,0],k);
                        l_score.Add(scr);

                    }
                }
            }
        }


        //find the best move
       int m = l_score.Min();
       int min_index =  l_score.IndexOf(m);
       machine_line(l_origin[min_index], l_k[min_index]);
       l_origin.Clear();
       l_k.Clear();
       l_score.Clear();
4

3 に答える 3

2

空だl_scoreと思います。そのため、例外が発生します。詳細については、例外のメッセージを参照してください。

于 2012-09-24T01:59:08.470 に答える
2

System.Linq をインポートする必要があります。

using Sytem.Linq;

そして、あなたの行は機能します:

int m = l_score.Min();

このエラーが表示されているに違いありません: InvalidOperationException (Sequence contains no elements)。リストが の場合に発生しますempty

于 2012-09-24T01:41:55.010 に答える
1

メソッドを呼び出すと、リストに要素が含まれていない場合に無効な操作の例外がスローされます.Min()

IEnumerable を逆コンパイルすると、次のことがわかりました。

<exception cref="T:System.InvalidOperationException"><paramref name="source"/> contains no elements.</exception>
于 2012-09-24T02:01:53.350 に答える