C# 如何使用Vars初始化列表

C# 如何使用Vars初始化列表,c#,list,C#,List,我有一个名为Players的类,它拥有不同的player属性。我想使用一个循环来初始化基于特定用户输入的玩家列表。然后我将使用列表与每个玩家玩纸牌游戏。我想这个名单应该是全球性的 我不知道如何初始化列表,因为我似乎无法使用var 尝试创建新玩家时,在名称字段中 谢谢 class Players { public string name; public double bank; public Hands playerHands; //A List of hands

我有一个名为Players的类,它拥有不同的player属性。我想使用一个循环来初始化基于特定用户输入的玩家列表。然后我将使用列表与每个玩家玩纸牌游戏。我想这个名单应该是全球性的

我不知道如何初始化列表,因为我似乎无法使用var 尝试创建新玩家时,在名称字段中

谢谢

    class Players
{
    public string name;
    public double bank;
    public Hands  playerHands; //A List of hands played

    public Players ()
    {
        name = "Unknown";
        bank = 0.0;
        playerHands  = null;
    }

    public Players(string name, double bank, Hands playerHands)
    {
        this.name = name;
        this.bank = bank;
        this.playerHands = playerHands;
    }
}

class Program
{
    private static int numOfPlayers;
    private static int numOfDecks;
    private static List<Cards> shoe;

    public static void Main()
    {
        Console.OutputEncoding = Encoding.UTF8; //required to display special characters
        Hands playerHands = new Hands();
        Hands dealerHands = new Hands();
        SetUpTable();

        //Initilize Players
        Players player = new Players("Ken", 100.00, playerHands);
        Players dealer = new Players("Dealer", 0.0, dealerHands);
        int dealerScore = 0, playerScore = 0;

        //Deal initial cards
        //The deal starts with the dealer who gets the first card face down

            Cards dealerUpCard = null;
            Hand dealerHand = new Hand();
            Hand playerHand = new Hand();
            dealer.playerHands.addHand(dealerHand);
            player.playerHands.addHand(playerHand);

            for (int iii = 1; iii < 3; iii++)
            {   
                //Deal dealer's hand                          
                dealerHand.addCard(shoe[0]);
                dealerScore += shoe[0].value;
                if (iii == 2) { dealerUpCard = shoe[0]; }
                shoe.RemoveAt(0);

                //Deal Player's aHand           
                playerHand.addCard(shoe[0]);             
                playerScore += shoe[0].value;
                shoe.RemoveAt(0);
            }

        //Print out the test hands
        displayHand(dealer);            
        displayHand(player);
        Console.Read();
    }

    static void displayHand(Players player)
    {
        //Print out the test hands
        for (int i = 0; i < player.playerHands.hands.Count; i++)
        {
            Console.Write("{0}'s hand: ", player.name);
            for (int j = 0; j < player.playerHands.hands[i].hand.Count; j++)
            {
                Console.Write(" {0}{1} ", player.playerHands.hands[i].hand[j].rank, (char)player.playerHands.hands[i].hand[j].suit);
            }
            Console.WriteLine();
        }
    }

    static void SetUpTable()
    {
        //Create players
        numOfPlayers = validateUserInput("How many players (1-6)?",1,6);
        for (int i = 0; i<numOfPlayers; i++)
            {   //get player elements
                //initiliz a new unique player in the Players list
                //ie: Players player = new Players("Ken", 100.00, playerHands);
            }

        //Create shoe of cards
        numOfDecks = validateUserInput("How many decks of cards (1-8)?", 1, 8);          
        shoe = Deck.createDeck(numOfDecks);
        Deck.shuffleDeck(shoe, numOfDecks);          
    }
}
职业玩家
{
公共字符串名称;
公共双银行;
公共手牌玩家手;//已玩手牌的列表
公共玩家()
{
name=“未知”;
bank=0.0;
playerHands=null;
}
公共玩家(弦乐名称、双人组、手牌玩家)
{
this.name=名称;
this.bank=银行;
this.playerHands=playerHands;
}
}
班级计划
{
私人静态玩家;
私有静态数据包;
私人静态列表鞋;
公共静态void Main()
{
Console.outpunecoding=Encoding.UTF8;//需要显示特殊字符
Hands playerHands=新手();
Hands Dealhands=新手();
SetUpTable();
//初始化玩家
玩家=新玩家(“肯”,100.00,玩家手);
玩家经销商=新玩家(“经销商”,0.0,经销商);
int dealerScore=0,playerScore=0;
//发初始卡
//交易开始于第一张牌面朝下的庄家
卡片DealUrupCard=null;
Hand Dealhand=新手();
掌上游戏机手=新手();
dealer.playerHands.addHand(dealerHand);
player.playerHands.addHand(playerHands);
对于(int iii=1;iii<3;iii++)
{   
//发牌
dealerHand.addCard(shoe[0]);
dealerScore+=鞋[0]。值;
如果(iii==2){dealurupcard=shoe[0];}
脱鞋(0);
//发牌玩家的牌
playerHand.addCard(shoe[0]);
playerScore+=鞋[0]。值;
脱鞋(0);
}
//打印出测试手
显示手(经销商);
显示手(播放器);
Console.Read();
}
静态无效显示手(玩家)
{
//打印出测试手
for(int i=0;ipublic List ListOfPlayers=new List();
静态无效设置表()
{
//创建玩家
numOfPlayers=6;

对于(int i=0;iPaste保存
SetUpTable
的整个类。保存列表的Players对象在哪里?为什么不声明一个
var lstPlayers=new list();
,然后
在循环中将
项添加到其中?
lstPlayers.Add(新玩家(…);
。您提到了一个玩家列表,但在您的代码中看不到任何地方,我所看到的只是一个玩家被关在一个场地上。谢谢——正确答案。谢谢似乎总是一个简单的答案。
public List<Players> ListOfPlayers=new List<Players>();
static void SetUpTable()
{
    //Create players
    numOfPlayers = 6;

    for (int i = 0; i<numOfPlayers; i++)
        {   
          ListOfPlayers.Add(new Players());
          //or with initial values with ctor:
          ListOfPlayers.Add(new Players("Ken", 100.00, playerHands));
          //or
          ListOfPlayers.Add(new Players(){name="Ken", bank=100.00, playerHands=_playerHands});
            //ie: Players player = new Players("Ken", 100.00, playerHands);
        }

}