winforms 从元组列表中选择随机元素C#

nwo49xxi  于 2023-01-14  发布在  C#
关注(0)|答案(1)|浏览(150)

我对编程很陌生,我正尝试在我做的一个小游戏中添加一个随机机器人移动。我的想法是制作一个所有合法移动的元组列表,然后从列表中随机选择一个元组,然后解构和改变二维数组中的一个值。我在互联网上找遍了,找到了制作元组列表的方法(我想),但无法从列表中随机选择一个元素。
我是这么试的:

List<Tuple<int, int>> legalMoves; // To make the list of tuples

// Later on in a double for-loop that iterates through all the rows and columns of the 2D-array I check if that certain row and column combination is a legal move and then add it to the list like so:

legalMoves.Add(Tuple.Create(row, col));

//Then in a different method I try to pick a random element from that list (this doesn't work)

Random random = new Random();
int randomIndex = random.Next(legalMoves.Count);
(int, int) randomMove = legalMoves[randomIndex];

它在最后一行给出以下错误:错误CS0029无法将类型"System. Tuple〈int,int〉"隐式转换为"(int,int)"
有什么办法能让这件事成功吗?
先谢了!

z9ju0rcb

z9ju0rcb1#

语法(int, int)定义ValueTuple<int,int>,而不是Tuple<int,int>。将列表定义更改为:

List<ValueTuple<int, int>> legalMoves;

以及Tuple.CreateValueTuple.Create

相关问题