C# 将位图资源添加到列表中

C# 将位图资源添加到列表中,c#,list,bitmap,resources,C#,List,Bitmap,Resources,我正在做一个纸牌游戏,我的资源中有52个位图(所有的纸牌)。因为它现在在处理2张卡时起作用: public void GiveTwoRandomCardsFromCardsList() { Random random = new Random(); System.Threading.Thread.Sleep(100); int slumptal = random.Next(0, 52); card1 = Cards[slu

我正在做一个纸牌游戏,我的资源中有52个位图(所有的纸牌)。因为它现在在处理2张卡时起作用:

public void GiveTwoRandomCardsFromCardsList()
    {

        Random random = new Random();
        System.Threading.Thread.Sleep(100);
        int slumptal = random.Next(0, 52);
        card1 = Cards[slumptal];

        bool flag = false;

        while (!flag)
        {
          System.Threading.Thread.Sleep(100);
        int slumptal2 = random.Next(0, 52);

        if (slumptal != slumptal2)
        {
            card2 = Cards[slumptal2];
            flag = true;
        }

        }

    }
它所做的是从字符串列表中给2个字符串赋值。该列表包含52个字符串h2、h3、h4、h5等。现在,如果我希望显示某张卡的图像,我有以下长开关:

switch (whatIsTheFirstCard)
        {

                //Hearts
            case "h2":
                Card1Picture.Image = Resource1.h2;
                break;
            case "h3":
                Card1Picture.Image = Resource1.h3;
                break;
            case "h4":
                Card1Picture.Image = Resource1.h4;
                break;
等等,所有的牌。有没有办法将图像直接添加到列表中,然后直接调用该列表?现在的方式要求我复制并粘贴我希望显示的每张卡的开关。不用说,我宁愿有一个可以保存所有位图卡的列表

  private void FlopButton_Click(object sender, EventArgs e)
    {
        theCards.DealTheFlop();
        FlopCard1.Image = thebitmapgoeshere;

    }

我不知道向列表中添加位图然后从列表中调用位图的语法。

我会使用字典。您可以使用创建字典

Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:

myControl.Image = myCards["h2"];

我会用字典。您可以使用创建字典

Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:

myControl.Image = myCards["h2"];

我会用字典。您可以使用创建字典

Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:

myControl.Image = myCards["h2"];

我会用字典。您可以使用创建字典

Dictionary<string, Bitmap> myCards = new Dictionary<string, Bitmap>();
最后,您可以使用:

myControl.Image = myCards["h2"];

如果代码中的卡与资源中的卡使用完全相同的标识符,则可以直接通过资源管理器获得相应的资源,即

FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的


这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡集。

如果在代码中为卡使用与在资源中完全相同的标识符,您可以通过资源管理器直接获得适当的资源,即

FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的


这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡集。

如果在代码中为卡使用与在资源中完全相同的标识符,您可以通过资源管理器直接获得适当的资源,即

FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的


这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡集。

如果在代码中为卡使用与在资源中完全相同的标识符,您可以通过资源管理器直接获得适当的资源,即

FlopCard1.Image = (Bitmap)Resources.ResourceManager.GetObject("h4", Resources.Culture);
在内部,生成的代码也正是这样做的

这样,您就不需要单独的列表,甚至可以轻松地为不同的区域性指定不同的卡组。

使用以下方法:

Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑: 抱歉,我没有看到Georg的答案:/

使用此选项:

Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑: 抱歉,我没有看到Georg的答案:/

使用此选项:

Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑: 抱歉,我没有看到Georg的答案:/

使用此选项:

Card1Picture.Image = (Image)Resource1.ResourceManager.GetObject("h1");
编辑:
对不起,我没有看到乔治的回答://

太好了!这让事情变得容易多了。每天学点新东西,嗯?谢谢伟大的这让事情变得容易多了。每天学点新东西,嗯?谢谢伟大的这让事情变得容易多了。每天学点新东西,嗯?谢谢伟大的这让事情变得容易多了。每天学点新东西,嗯?谢谢