【问题标题】:Add images to array, pick one at random and delete from array将图像添加到数组中,随机选择一张并从数组中删除
【发布时间】:2015-03-30 04:57:12
【问题描述】:

所以我刚开始用 C# 编程(不过我知道基础知识)。我有时会和朋友一起玩纸牌游戏,你必须选择一张纸牌,根据上面的内容,我们必须进行挑战,失败者必须喝一杯。只是为了好玩,我想把这个游戏做成一个 Windows 窗体应用程序。不过我的图像有问题。我想从程序可执行文件目录中的文件夹中获取它们并将它们添加到数组中。然后我想在单击按钮时随机选择一个(使用 Random 类)。一旦选择了一张卡片,我希望将它从数组中删除,这样就不能再次选择它了。

我已经浏览了很多关于 SO 和其他地方的教程,但我找不到完全有效的东西。 This one 最接近,因为当单击按钮并显示它时它确实选择了一张随机图片,但我没有找到从数组中删除该图片的方法。如何添加从数组中删除图像的功能?

编辑:我应该补充一点,我已经尝试了一些不起作用的东西。虽然我删除了该代码(因为它不起作用),但我会再次尝试一些东西并在我无法使其工作时回发。

【问题讨论】:

  • 不要使用数组 - 使用堆栈或列表。图片使用后,删除
  • but I can't find something that fully works 因为永远不会有现成的代码可以按照您的设想完全按照您的意愿行事。这很简单,而不是 StackOverflow 的工作方式。如果您有基础知识,那么为什么不尝试一些东西,那么如果您无法让该代码的某些特定部分在此处发布您尝试过的内容,应该发生但没有发生的事情以及您的困难所以我们可以为您提供帮助,但不要期望在这里准备好编写代码。
  • 我知道 SO 是如何工作的,我应该补充一点,我已经尝试自己添加一些代码,但没有奏效。不过我删除了代码,所以我会再试一次,看看我能不能让它工作。如果没有,我会把它添加到我的原始帖子中。 @Plutonix 愿意解释为什么我不应该使用数组?对 C# 编程相当陌生,所以我真的不知道为什么我不应该使用它。
  • @Alex 你熟悉Index || SelectedIndex 吗?也没有看到你已经尝试过的东西真的很难有人借给你和方向之外使用List etc...C# Basics Tutorial - Collections
  • 阵列是 1990 年代的技术。如果您从数组中删除图像,它将在该元素/索引处留下null。使用集合会删除元素或插槽以及图像。为了不让资源闲置,您可能应该存储文件名并一次创建(和处理)一个图像

标签: c# arrays random


【解决方案1】:

根据您示例中的链接,我将假设在您的代码中您将图像表示为字符串。

只需使用列表List<string> images = new List<string>(); 来保存您的图片

要在列表中添加元素,请使用images.Add(elemenet),其中element 的类型为string

抽一张随机卡使用

Randrom randomNumber = new Random();
int extractedCard = randomNumber.Next(images.Length);

然后显示images[extractedCard]

然后您可以轻松地从列表中删除该卡images.RemoveAt(extractedCard)

【讨论】:

    猜你喜欢
    • 2012-12-09
    • 2013-03-27
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多