如何在我的类中创建一个二维数组,将名称和价格存储为字符串?如何在不使用对象的情况下从表单中访问它?到目前为止,我在课堂上有以下内容。
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();”之类的内容,我将如何访问此数组?以我的形式?
答案 0 :(得分:4)
我建议使用 Dictionary 对象。使用字符串存储价格信息是一个坏主意。字典<字符串,小数>将允许您将字符串蛋糕名称映射到十进制价格,而无需定义整个自定义对象(但实际上,这可能是您需要的)。
要访问字典而不需要您的类的实例,请按以下方式构建它:
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];
}
答案 1 :(得分:1)
让它静止:
public static string SpecialCakeName()
{
...
}
然后您可以使用类类型调用它:
string[,] names = Name.SpecialCakeName();
答案 2 :(得分:0)
改用词典。
Dictionary<string, decimal> strSpecialCakeName = new Dictionary<string, decimal>();
strSpecialCakeName.Add({"somename", 100/*some decimal price*/});