“无法将类型 'System.Generic.Collection.IEnumerable<int> 隐式转换为 <int>

"Connot implicitily convert type 'System.Generic.Collection.IEnumerable<int> to <int>

我正在构建一个程序,它将从一副标准纸牌中取出两张 user-selected 牌。牌组由 KeyValuePair 组成,其中设置为数字然后是花色。用户选择两张卡片后,我需要程序将卡片的整数部分加在一起。我不知道如何获取 KeyValuePair 的 Key 部分。

我知道我的下面的代码显然行不通,但我已经包含了图像以显示我正在尝试做的事情。我的程序应该从“选择的卡片索引”处的 KeyValuePairs 中获取键值,相反,它在 post.

的标题中提供了错误

Picture of my Current Code

我尝试使用 Convert.ToInt32 将整行转换为字符串,但它也不起作用。我到处寻找这个问题的准确答案,但没有运气。

以下是所有相关代码的其余部分:

    public static List<KeyValuePair<int, string>> Player1Hand = new 
    List<KeyValuePair<int, string>>(10); // creating the player's hand

    public static int chosencard;
    public static int player1total;
    public static string input;

    input = Console.ReadLine();
    chosencard2 = Int32.Parse(input);

    player1total = Hand.Player1Hand[chosencard];
    Console.WriteLine("Player 1's total is " + player1total);

谢谢大家的提前帮助。

您的 Player1HandKeyValue<int, string> 的列表。因此,您当前正在做的是访问该对,而您应该访问给定索引处的该对的密钥。

我想,根据你给我的信息,这应该可以解决问题:

player1Total += Hand.Player1Hand[chosencard].Key

根据您发布的图片,您有一个 List<KeyValuePair<int, string>> 并访问该列表中的一个元素。作为 return 类型,您会得到一个 KeyValuePair<int, string>,当然不能转换为 int。根据您想要实现的目标,您可以访问 Key or the ValueKeyValuePair。根据类型我猜是 Key.