2016-08-14 110 views
1

我是编程新手,对于c#很新,我试图为我正在学习的课程创建一个黑色插口游戏,并且在早期遇到困难。将项目从一个List <>移动到另一个。 C#

我想要做的是将一个项目从一个列表<>移到另一个列表。或者如果它更容易; (或者如果我正在讨论这个完全错误的任何建议将非常感谢)

所以从卡组中移动一张卡:卡到另一个列表:playerHand

这是List <> “牌的甲板”

public Deck() 
{ 
    //add card suits- 
    cards = new List<Cards>(); 
    // Hearts 
    cards.Add(new Cards("Ace", "Hearts", 11)); 
    cards.Add(new Cards("2", "Hearts", 2)); 
    cards.Add(new Cards("3", "Hearts", 3)); 
    cards.Add(new Cards("4", "Hearts", 4)); 
    cards.Add(new Cards("5", "Hearts", 5)); 
    cards.Add(new Cards("6", "Hearts", 6)); 
    cards.Add(new Cards("7", "Hearts", 7)); 
    cards.Add(new Cards("8", "Hearts", 8)); 
    cards.Add(new Cards("9", "Hearts", 9)); 
    cards.Add(new Cards("Jack", "Hearts", 10)); 
    cards.Add(new Cards("Queen", "Hearts", 11)); 
    cards.Add(new Cards("King", "Hearts", 12)); 
    // Diamonds 
    cards.Add(new Cards("Ace", "Diamonds", 11)); 
    cards.Add(new Cards("2", "Diamonds", 2)); 
    cards.Add(new Cards("3", "Diamonds", 3)); 
    cards.Add(new Cards("4", "Diamonds", 4)); 
    cards.Add(new Cards("5", "Diamonds", 5)); 
    cards.Add(new Cards("6", "Diamonds", 6)); 
    cards.Add(new Cards("7", "Diamonds", 7)); 
    cards.Add(new Cards("8", "Diamonds", 8)); 
    cards.Add(new Cards("9", "Diamonds", 9)); 
    cards.Add(new Cards("Jack", "Diamonds", 10)); 
    cards.Add(new Cards("Queen", "Diamonds", 11)); 
    cards.Add(new Cards("King", "DIamonds", 12)); 
    // Spade 
    cards.Add(new Cards("Ace", "Spades", 11)); 
    cards.Add(new Cards("2", "Spades", 2)); 
    cards.Add(new Cards("3", "Spades", 3)); 
    cards.Add(new Cards("4", "Spades", 4)); 
    cards.Add(new Cards("5", "Spades", 5)); 
    cards.Add(new Cards("6", "Spades", 6)); 
    cards.Add(new Cards("7", "Spades", 7)); 
    cards.Add(new Cards("8", "Spades", 8)); 
    cards.Add(new Cards("9", "Spades", 9)); 
    cards.Add(new Cards("Jack", "Spades", 10)); 
    cards.Add(new Cards("Queen", "Spades", 11)); 
    cards.Add(new Cards("King", "Spades", 12)); 
    // Clubs 
    cards.Add(new Cards("Ace", "Clubs", 11)); 
    cards.Add(new Cards("2", "Clubs", 2)); 
    cards.Add(new Cards("3", "Clubs", 3)); 
    cards.Add(new Cards("4", "Clubs", 4)); 
    cards.Add(new Cards("5", "Clubs", 5)); 
    cards.Add(new Cards("6", "Clubs", 6)); 
    cards.Add(new Cards("7", "Clubs", 7)); 
    cards.Add(new Cards("8", "Clubs", 8)); 
    cards.Add(new Cards("9", "Clubs", 9)); 
    cards.Add(new Cards("Jack", "Clubs", 10)); 
    cards.Add(new Cards("Queen", "Clubs", 11)); 
    cards.Add(new Cards("King", "Clubs", 12)); 
} 

回答

2
Card cardToMove = cards[0]; 
cards.Remove(card); 
playerHand.Add(card); 

,也许更清洁的方式来创建所有的卡片组:

List<string> types = new List<string> { "Hearts", "Diamonds", "Spades", "Clubs" }; 
List<dynamic> cards = new List<dynamic> 
{ 
    new {Text = "Ace", Number = 11 }, 
    new {Text = "2", Number = 2}, 
    new {Text = "3", Number = 3}, 
    new {Text = "4", Number = 4}, 
    new {Text = "5", Number = 5}, 
    new {Text = "6", Number = 6}, 
    new {Text = "7", Number = 7}, 
    new {Text = "8", Number = 8}, 
    new {Text = "9", Number = 9}, 
    new {Text = "Jack", Number = 10 }, 
    new {Text = "Queen", Number = 11 }, 
    new {Text = "King", Number = 12 } 
}; 

var cardDeck = (from type in types 
       from card in cards 
       select new Card(card.Text, type, card.Number)).ToList(); 
+0

感谢您的帮助,我确实有一个问题。 (对不起,如果它完全明显的答案)什么是你的代码中的“卡”?我必须创建一个var卡吗?它代表什么? – Kris

+0

这是一个动态对象的列表。你可以阅读并进入列表。我只是懒惰,并不想为它或一个元组拥有一个对象 –

+0

好的,谢谢我会考虑这一点。 – Kris

相关问题