“不能将类型 'System.Generic.Collection.IEnumerable<int> 隐式转换为 <int>
Posted
技术标签:
【中文标题】“不能将类型 \'System.Generic.Collection.IEnumerable<int> 隐式转换为 <int>【英文标题】:"Connot implicitily convert type 'System.Generic.Collection.IEnumerable<int> to <int>“不能将类型 'System.Generic.Collection.IEnumerable<int> 隐式转换为 <int> 【发布时间】:2021-07-27 17:22:15 【问题描述】:我正在构建一个程序,该程序将从标准纸牌中取出两张用户选择的卡片。这副牌由 KeyValuePair
我知道我下面的代码显然不起作用,但我已经包含了图像以显示我正在尝试做的事情。我的程序应该从“选择的卡片索引”处的 KeyValuePairs 中获取键值,而不是在这篇文章的标题中提供错误。
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);
谢谢大家提前帮忙。
【问题讨论】:
在没有任何代码的情况下,我们能做的最好的就是猜测,我们在这里不这样做。因此,请提供一些代码,以便我们查看问题所在。链接图片是不够的。 既然可以使用字典,为什么还要使用List<KeyValuePair>
?如果你这样做了Dictionary<int, string> Player1Hand
,你就可以Player1Hand.Keys
对不起,这里是新人,我已将所有相关代码添加到帖子中。为抬头干杯。
【参考方案1】:
您的Player1Hand
是KeyValue<int, string>
的列表。因此,您当前正在做的是访问该对,而您应该在给定索引处访问该对的键。
我认为,根据你给我的信息,这应该可以解决问题:
player1Total += Hand.Player1Hand[chosencard].Key
【讨论】:
【参考方案2】:根据您发布的图片,您有一个List<KeyValuePair<int, string>>
并访问该列表中的元素。作为返回类型,你会得到一个KeyValuePair<int, string>
,当然不能转换为int
。根据您想要实现的目标,您可以访问 Key
或 KeyValuePair
的 Value
。根据类型我猜是Key
。
【讨论】:
以上是关于“不能将类型 'System.Generic.Collection.IEnumerable<int> 隐式转换为 <int>的主要内容,如果未能解决你的问题,请参考以下文章