-2

如何在我的类中创建一个将名称和价格存储为字符串的二维数组?以及如何在不使用对象的情况下从我的表单中访问它?到目前为止,我的课堂上有以下内容。

class Name
{
    public string SpecialCakeName()
    {
        string[,] strSpecialCakeName = new string[4, 2];

        strSpecialCakeName[0, 0] = " ";
        strSpecialCakeName[0, 1] = " ";
        strSpecialCakeName[1, 0] = " ";
        strSpecialCakeName[1, 1] = " ";
        strSpecialCakeName[2, 0] = " ";
        strSpecialCakeName[2, 1] = " ";
        strSpecialCakeName[3, 0] = " ";
        strSpecialCakeName[3, 1] = " ";

        return strSpecialCakeName[0,0];
    }
}

但是,我不知道这甚至是正确的方法。另外,如果不使用“Name cakeName = new Name();”之类的东西,我怎么能访问这个数组?以我的形式?

4

3 回答 3

4

我建议使用Dictionary对象。使用字符串存储价格信息是个坏主意。Dictionary<string,decimal> 将允许您将字符串蛋糕名称映射到十进制价格,而无需定义整个自定义对象(虽然,实际上,这可能是您需要的)。

要在不需要类实例的情况下访问字典,请像这样构建它:

public class Names
{
    private static Dictionary<string, decimal> _specialCakes = new Dictionary<string,decimal>{
                {"Cake 1", 1.00m},
                {"Cake 2", 2.50m},
                {"Cake 3", 4.00m}
          };

    public static Dictionary<string, decimal> SpecialCakes {
           get {return _specialCakes;}
    }
}

现在您可以查找这样的价格:

decimal Cake1Price = Names.SpecialCakes["Cake 1"];

或者循环遍历所有蛋糕名称的列表,如下所示:

foreach(string name in Names.SpecialCakes.Keys)
{
    //and within the loop reference a price for that cake like this:
    decimal currentPrice = Names.SpecialCakes[name];
}
于 2012-11-19T20:33:37.627 回答
1

使其静态:

public static string SpecialCakeName()
{
...
}

然后你可以使用类类型调用它:

string[,] names = Name.SpecialCakeName();
于 2012-11-19T20:35:14.017 回答
0

请改用字典。

Dictionary<string, decimal> strSpecialCakeName = new Dictionary<string, decimal>();
strSpecialCakeName.Add({"somename", 100/*some decimal price*/});
于 2012-11-19T20:33:44.733 回答