我在以下代码中收到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();
答案 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>