c# - 将用户信息存储到数组中以在 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#
您最好从一些类构建开始来存储信息。请参阅下面的课程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}";
}
}
- 衬衫包含两个读/写属性,品牌和尺寸。
- 新衬衫用空字符串初始化(而不是
null
) ToString()
方法创建一个表示衬衫详细信息的人类可读字符串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);
}
}
推荐阅读
- javascript - 保护 Javascript 同源 postMessage 调用和消息监听器,这就够了吗?
- javascript - 如何根据实时数据库 Firebase 中的子键过滤数据?
- azure - 如何构建 Azure 搜索查询以返回仅基于特定字段的通配符搜索?
- webassembly - Emscripten 不生成源映射
- colors - 为什么摩托罗拉和三星的手机颜色不一样?
- firebase - 在没有用户的情况下使用 firebase 实时数据库进行身份验证
- android - Flutter:当函数作为前台服务执行时,会导致 MissingPluginException
- linux - 使用 Ansible 创建主机名到 IP 的字典
- javascript - p5js,如何使颜色跟随数组?
- python - numpy减法的操作数广播