c# - 定义数组内容的更优雅的方式

标签 c# arrays xna

我正在尝试定义数组的内容。下面显示了实现我想要的方法的一个简化示例。

有更好的方法吗?这似乎是一种相当困惑的方式来实现我认为应该很容易完成的事情。我可以使用列表吗?或者数据库可以工作吗(我对如何使用数据库一无所知,但觉得这是他们擅长的事情)。

提前致谢

        for (int i = 0; i < NumberOfBoxes; i++)
        {

            BoxName[0] = "Blue box";
            if (i == 1) { break; }
            BoxName[1] = "Red box";
            if (i == 2) { break; }
            BoxName[2] = "Yellow box";
            if (i == 3) { break; }
            BoxName[3] = "Green box";
            if (i == 4) { break; }
            BoxName[4] = "White box";
            if (i == 5) { break; }
            BoxName[5] = "Black box";
            if (i == 6) { break; }
        }

我真正想做的就是使用这段代码:

            BoxName[0] = "Blue box";
            BoxName[1] = "Red box";
            BoxName[2] = "Yellow box";
            BoxName[3] = "Green box";
            BoxName[4] = "White box";
            BoxName[5] = "Black box";

如果只有 4 个框,那么编译器就会神奇地知道忽略 BoxName[4] 和 BoxName[5],而不是像当前那样抛出错误。

最佳答案

您可以尝试使用Linq:

// All possible boxes
String[] possibleBoxes = new String[] {
  "Blue box",
  "Red box",
  "Yellow box",
  "Green box",
  "White box",
  "Black box"
};

int numberOfBoxes = 4; // Or 6 or 3...

String[] BoxName = possibleBoxes.Take(numberOfBoxes).ToArray();

关于c# - 定义数组内容的更优雅的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20855898/

相关文章:

c# - 在 MVC3 中,“添加 View ”对话框从哪里获取其模型类?

c# - Entity Framework 查询说找不到我从未指定的列的列

c# - Directory.Exists() 奇怪的行为

javascript - 如何用jquery循环打印htmlString

c# - 计算量大的粒子系统用什么技术?

c# - 如何从 Xamarin.Forms 应用程序修改平台特定属性?

c++ - 是否可以将 bitset<8> 的值复制到一串数组而不进行转换?

ios - 将 Swift 数组以外的其他内容用于传递给 OpenGL 缓冲区的可变固定大小线程安全数据

.net - 在 Reflector 中打开 XNA Xbox 360 程序集

windows - Xna 文本在字符之间有额外的空间