存储除List <string>以外的字符串的方法

时间:2016-01-12 23:21:54

标签: c# string list poker

我正在开发一个扑克应用程序,目前我想存储我计划使用列表的所有卡片组合名称,并执行以下操作:

private static List<string> combinationNames = new List<string>
{
    " High Card ",
    " Pair ",
    " Two Pair ",
    " Three of a Kind ",
    " Straight ",
    " Flush ",
    " Full House ",
    " Four of a Kind ",
    " Straight Flush ",
    " Royal Flush ! "
};

for (int j = 0; j < combinationNames.Count; j++)
{
    if (current == j)
    {
        MessageBox.Show("You Have : ", combinationNames[j]);

    }
}

那么有更好的方法来存储这些名称,然后像我一样访问它们吗?

1 个答案:

答案 0 :(得分:0)

在你的问题中没有太多可以理解你所拥有的代码有什么特别的错误。也就是说,至少我希望以下是一个改进:

private readonly static string[] combinationNames =
{
    " High Card ",
    " Pair ",
    " Two Pair ",
    " Three of a Kind ",
    " Straight ",
    " Flush ",
    " Full House ",
    " Four of a Kind ",
    " Straight Flush ",
    " Royal Flush ! "
};

if (current >= 0 && current < combinationNames.Length)
{
    MessageBox.Show("You Have : ", combinationNames[current]);
}

即:

  • 由于列表不会更改,因此它可以是数组而不是列表
  • 由于列表对象不会更改,因此变量可以是readonly
  • 您使用j执行的所有代码都将其与current进行比较;无需枚举j的所有可能值...只需确保current在有效范围内,然后直接使用其值。

关于最后一点的注意事项并不是很清楚你从哪里得到current,但是在显示文本之前它应该已经保证有效,所以你甚至不需要范围检查。我只是把它放在那里以确保上面代码的新版本与您展示的代码的行为相当一致(那里的代码很少)。

如果您需要比上述更具体的建议,请更准确地解释您认为“更好”的内容,以及您现在的代码以何种方式无法满足您的需求。即代码现在做了什么,与你想要它做的有什么不同?