2017-03-25 73 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

謝謝......錯誤消失了。現在到下一個問題哈哈。 –

相關問題