2017-03-25 35 views
0

我一直用这个敲我的头太久了。 我正在为学校制作二十一点游戏,我目前正试图获取卡片值并将它们添加到自己的列表中。不能将类型int隐式转换为系统集合通用列表

当我把它设置为一个var,因为你看到顶部注释它可以正常工作,但是当我尝试将它切换到列表时,我得到了上述错误。我相信这是我很想念的东西。

当我尝试调用GetCardValue方法时,最后弹出错误。

感谢您的任何见解。

 /*var cardValue = 0; 
     foreach (Card card in userHand) 
     { 
      card.GetCardValue(); 
      cardValue = card.GetCardValue(); 
     }*/ 

     List<int> cardValue = new List<int>(); 
     foreach (Card card in userHand) 
     { 
      card.GetCardValue(); 
      cardValue = card.GetCardValue(); 
     } 
+0

_cardValue_是'名单'而GetCardValue回报一个int。你注释掉的代码有效,但结果是错误的。它返回userHand中最后一张牌的值 – Steve

+0

你有意调用'GetCardValue'两次吗? –

+0

嘿史蒂夫。我知道最上面的代码是错误的,我只是在展示我在如何在脑海中解决问题的进展。 Rufus ...这是一个很好的问题哈哈哈。 –

回答

1

如果你想添加,然后Add

List<int> cardValue = new List<int>(); 

    foreach (Card card in userHand) 
    { 
     card.GetCardValue(); 

     // get Card Value and Add it to the list: 
     cardValue.Add(card.GetCardValue()); // <- Add; not assign (=) 
    } 

您可以使用的LINQ使代码更短:

List<int> cardValue = userHand 
     .Select(card => card.GetCardValue()) 
     .ToList(); 
+0

谢谢......错误消失了。现在到下一个问题哈哈。 –

相关问题