无效的操作错误

时间:2012-09-24 01:39:31

标签: c# windows-phone-7 invalidoperationexception

我在以下代码中收到Invalid Operation Error

 int m = l_score.Min();

其中l_scoreint列表。 为什么会这样呢?

编辑:代码

 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();

3 个答案:

答案 0 :(得分:2)

您需要导入System.Linq:

using Sytem.Linq;

然后你的行就可以了:

int m = l_score.Min();

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

如果您调用.Min()方法,则当列表内容没有元素时,将抛出无效的操作异常。

在反编译IEnumerable时发现了这个:

<exception cref="T:System.InvalidOperationException"><paramref name="source"/> contains no elements.</exception>