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

您需要导入 System.Linq:

using Sytem.Linq;

然后您的线路将起作用:

int m = l_score.Min();

我敢打赌你会看到这个错误:InvalidOperationException (Sequence contains no elements)。它发生在列表为empty.

于 2012-09-24T01:41:55.010 回答
2

我猜l_score是空的,这就是你得到那个例外的原因。查看异常消息以获取更多详细信息。

于 2012-09-24T01:59:08.470 回答
1

如果调用该.Min()方法,当列表中没有元素时,会抛出无效操作异常。

反编译 IEnumerable 时发现这个:

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