首页 > 解决方案 > 将用户信息存储到数组中以在 switch 语句中使用

问题描述

我的任务是菜单中的选项,我目前正试图将用户输入(在本例中为带有 T 恤的品牌和尺寸的字符串)存储到一个数组中,以便稍后在其他一些中使用菜单选项。

namespace A4pf
{
    class Program
    {
        static void Main(string[] args)
        {
            int option = 0;

            Console.WriteLine("1. Add New T-shirt Details");
            Console.WriteLine("2. Edit Exisiting T-shirt detials");
            Console.WriteLine("3. Display All T-shirts in store");
            Console.WriteLine("4. Delete T-shirt information");
            Console.WriteLine("5. Exit");

            switch(option)
            {
                case 1:
                    Console.WriteLine("Please enter the T-Shirts Details. ");
                    Console.Write("Brand Name and size(eg. Thrasher-M");
                    string[] tshirtDetails = new string[12];

                    for (int i = 0; i < tshirtDetails.Length; i++)
                    {
                        tshirtDetails[i] = Console.ReadLine();
                    }
                    
                    break;
                default:
                    
                    break;
                  
            }
            Console.ReadLine();
        } 
     
    }
}

标签: c#arrays.net

解决方案


由于这是C#您最好从一些类构建开始来存储信息。请参阅下面的课程Shirt以及一些基本功能

public class Shirt
{
    public Shirt()
    {
        Brand=string.Empty; 
        Size=string.Empty;
    }

    public Shirt(string brand, string size)
    {
        Brand=brand;
        Size=size;
    }

    public string Brand { get; set; }
    public string Size { get; set; }

    public void EditDetails()
    {
        string input;
        Console.Write($"Enter Brand [{Brand}]: ");
        input = Console.ReadLine();
        if (!string.IsNullOrWhiteSpace(input))
        {
            this.Brand = input;
        }
        Console.Write($"Enter Size [{Size}]: ");
        input = Console.ReadLine();
        if (!string.IsNullOrWhiteSpace(input))
        {
            this.Size = input;
        }
    }

    public override string ToString()
    {
        return $"{Brand}-{Size}";
    }
}
  1. 衬衫包含两个读/写属性,品牌和尺寸。
  2. 新衬衫用空字符串初始化(而不是null
  3. ToString()方法创建一个表示衬衫详细信息的人类可读字符串
  4. EditDetails()函数一一向用户询问详细信息Console。它还显示现有详细信息(如果有),并且仅在用户输入非空字符串时分配新的详细信息。

此类可在您的程序中用于跟踪商店中的所有衬衫。例如:

class Program
{
    static void Main(string[] args)
    {
        bool done = false;
        List<Shirt> store = new List<Shirt>();
        do
        {
            Console.WriteLine("1. Add New T-shirt Details");
            Console.WriteLine("2. Edit Existing T-shirt details");
            Console.WriteLine("3. Display All T-shirts in store");
            Console.WriteLine("4. Delete T-shirt information");
            Console.WriteLine("5. Exit");
            string input = Console.ReadLine();
            if (int.TryParse(input, out int choice))
            {
                switch (choice)
                {
                    case 1:
                        Shirt shirt = new Shirt();
                        shirt.EditDetails();
                        store.Add(shirt);
                        break;
                    case 2:
                        Shirt last = store[store.Count-1];
                        last.EditDetails();
                        break;
                    case 3:
                        foreach (var item in store)
                        {
                            Console.WriteLine(item.ToString());
                        }
                        break;
                    case 5:
                        done = true;
                        break;
                    default:
                        break;
                }
            }
        } while (!done);
    }
}

推荐阅读