0

我有一个数组,当我打印数组时,我需要在输出上加上 $ 符号。我见过 ValueType 但它不适用于我的数组。请帮帮我,该怎么办?

这是我的代码

string[,] Pizza = new string[5, 5]
        {
            {"Name of Pizza \t",   "Small",        "Medium",       "Large",        "XLarge"},
            {"Plain \t \t",           "8.80",       "12.80",    "16.80",    "20.80"},
            {"Hawaian \t",         "10.90",      "15.90",       "20.90",        "25.90"},
            {"Beefy \t \t",           "10.90",      "16.90",        "21.90",        "26.90"},
            {"Vegetarian \t",       "10.90",      "14.90",      "19.90",        "24.90"}
        };

        //print the array
        Console.WriteLine("what type of Pizza do you want?");
        for (int i = 0; i < Pizza.GetLength (0); i++)
        {
            Console.WriteLine();
            for (int j = 0; j < Pizza.GetLength (1); j++)
                Console.Write(Pizza[i, j]+'\t');
        }

提前致谢。

4

2 回答 2

1

这应该可以帮助你

string[,] Pizza = new string[5, 5]
{
    {"Name of Pizza \t",   "Small",        "Medium",       "Large",        "XLarge"},
    {"Plain \t \t",           "8.80",       "12.80",    "16.80",    "20.80"},
    {"Hawaian \t",         "10.90",      "15.90",       "20.90",        "25.90"},
    {"Beefy \t \t",           "10.90",      "16.90",        "21.90",        "26.90"},
    {"Vegetarian \t",       "10.90",      "14.90",      "19.90",        "24.90"}
};

//print the array
Console.WriteLine("what type of Pizza do you want?");
for (int i = 0; i < Pizza.GetLength (0); i++)
{
    Console.WriteLine();

    for (int j = 0; j < Pizza.GetLength (1); j++)

        if(j > 0 && i > 0){
            Console.Write("$" + Pizza[i, j] + '\t');
        }
        else{
            Console.Write(Pizza[i, j] + '\t');
        }
}
于 2012-11-15T06:07:32.347 回答
0

重写。

我对您的问题的解决方案背后的核心思想是我使用十进制数据类型来表示价格,并且我使用标准的“C”格式以便使用适当的货币符号输出它们。

enum PizzaSize
{
    Small,
    Medium,
    Large,
    XLarge
}

class Program
{
    static void Main(string[] args)
    {
        var pizzas = new[] {
            new {
                Name = "Plain",
                Prices = new [] {
                    new { Size = PizzaSize.Small, Price = 8.80M },
                    new { Size = PizzaSize.Medium, Price = 12.80M },
                    new { Size = PizzaSize.Large, Price = 16.80M },
                    new { Size = PizzaSize.XLarge, Price = 20.80M },
                }.ToDictionary(item => item.Size, item => item.Price)
            },
            new {
                Name = "Hawaian",
                Prices = new [] {
                    new { Size = PizzaSize.Small, Price = 10.90M },
                    new { Size = PizzaSize.Medium, Price = 15.90M },
                    new { Size = PizzaSize.Large, Price = 20.90M },
                    new { Size = PizzaSize.XLarge, Price = 25.90M },
                }.ToDictionary(item => item.Size, item => item.Price)
            },
            new {
                Name = "Beefy",
                Prices = new [] {
                    new { Size = PizzaSize.Small, Price = 10.90M },
                    new { Size = PizzaSize.Medium, Price = 16.90M },
                    new { Size = PizzaSize.Large, Price = 21.90M },
                    new { Size = PizzaSize.XLarge, Price = 26.90M },
                }.ToDictionary(item => item.Size, item => item.Price)
            },
            new {
                Name = "Vegetarian",
                Prices = new [] {
                    new { Size = PizzaSize.Small, Price = 10.90M },
                    new { Size = PizzaSize.Medium, Price = 14.90M },
                    new { Size = PizzaSize.Large, Price = 19.90M },
                    new { Size = PizzaSize.XLarge, Price = 24.90M },
                }.ToDictionary(item => item.Size, item => item.Price)
            },
        };

        int maxNameWidth = pizzas.Max(item => item.Name.Length);

        const string nameOfPizzaLabel = "Name of Pizza";

        if (maxNameWidth < nameOfPizzaLabel.Length)
        {
            maxNameWidth = nameOfPizzaLabel.Length;
        }

        Console.WriteLine("what type of Pizza do you want?");

        Console.WriteLine("{0} \t{1}\t{2}\t{3}\t{4}",
            nameOfPizzaLabel.PadLeft(maxNameWidth),
            PizzaSize.Small,
            PizzaSize.Medium,
            PizzaSize.Large,
            PizzaSize.XLarge);

        foreach (var pizza in pizzas)
        {
            Console.WriteLine("{0}:\t{1:C}\t{2:C}\t{3:C}\t{4:C}",
                pizza.Name.PadLeft(maxNameWidth),
                pizza.Prices[PizzaSize.Small],
                pizza.Prices[PizzaSize.Medium],
                pizza.Prices[PizzaSize.Large],
                pizza.Prices[PizzaSize.XLarge]);
        }
    }
}
于 2012-11-15T06:08:21.297 回答