2013-12-03 3 views
-1

Привет, я довольно новичок в C# и пытался получить доступ к моему списку карточек из другого класса и получить его для отображения изображения по форме, но все, что мне действительно нужно, это способ создания экземпляра или ссылку или любой другой список из моего класса колоды. Как я могу использовать свой список карт в другом классе?Доступ к списку из другого класса C#

namespace aGameOf21 
{ 
    //adds deck class to Ideck interface 
    public class Deck : IDeck 
    { 
     //default deck call 
     public Deck() 
     { 
     Reset(); 
     } 
     // creates list from the card class with get and set accessors 
     public List<Card> Cards { get; set; } 
     //resets the decks to unshuffled values default when calling class 
     public void Reset() 
     { 
     // using a LINQ statement takes each enumerable from cards list and combines them 
     Cards = Enumerable.Range(1, 4) 
          .SelectMany(s => Enumerable.Range(1, 13) 
          .Select(c => new Card() 
          { 
           Suit = (Suit)s, 
           CardNumber = (CardNumber)c 
          })) 
          .ToList(); 
     /* foreach(Card c in Cards) 
     { 
      Console.WriteLine("Number = {0}, Suit = {1}", c.CardNumber , c.Suit); 
     }*/ 
     } 

     public void Shuffle() 
     { 
     Cards = Cards.OrderBy(c => Guid.NewGuid()) 
         .ToList(); 
     } 

     public ICard TakeCard() 
     { 
     var card = Cards.FirstOrDefault(); 
     Cards.Remove(card); 
     return card; 
     } 

     public IEnumerable<ICard> TakeCards(int numberOfCards) 
     { 
     var cards = Cards.Take(numberOfCards); 
     var takeCards = cards as Card[] ?? cards.ToArray(); 
     Cards.RemoveAll(takeCards.Contains); 
     return takeCards; 
     } 
    } 
} 
+6

Пожалуйста, внесите свой код. – PoweredByOrange

+6

Пожалуйста, задайте вопрос. –

+0

добавьте переменную и перейдите в список через конструктор. – Sorceri

ответ

1

Я не совсем понятно, что вы просите, но если вы создаете свою колоду с помощью:

var deck = new Deck(); 

вы можете получить доступ к списку карт, как:

var cardList = deck.Cards; 

Затем вы можете передать этот список, где хотите.

0

В мой комментарий о добавлении переменной и передаче его списка через конструктор.

//adds deck class to Ideck interface 
    public class Deck : IDeck 
    { 
     private List _list; 
     //default deck call 
     public Deck(List list) 
     { 
     _list = list; 
     Reset(); 
     } 
    } 
Смежные вопросы