所以我正在制作一个程序,为用户创建一个杂货清单。它将启动,自我介绍,并提示您输入项目。在您输入项目后,它将把它们分类为诸如";Dairy"干货";,这就是我与斗争的部分
Console.WriteLine("-----------------------------------------------");
Console.WriteLine("[<I-I-I-I-I>] LOADING [<I-I-I-I-I>]");
System.Threading.Thread.Sleep(1000);
Console.WriteLine("Initiating GROCERMAN. . .");
Console.WriteLine("Welcome to GROCERMAN! GrocerMan will help you create the best grocery list ever.");
Console.WriteLine("Please enter the items you would like to purchase:");
string purchInp = Console.ReadLine();
Console.WriteLine($"Are you sure you want to buy these items: {purchInp}? Please enter 'Yes' or 'No' exactly or it will not register.");
var decbuy = Console.ReadLine();
if(decbuy == "Yes"){
Console.WriteLine("Awesome! Please wait one moment.");
Console.WriteLine("Alright, I made your list! Here it is:");
Console.WriteLine(purchInp);
}
else if(decbuy == "No"){
Console.WriteLine("Ah, very well. You can restart the program to make a new list or you could leave, I guess. . .");
}
Console.WriteLine("-----------------------------------------------");
我不知道如何获取purchInp
并通读它并自动将其分配给一个类别。我想我可以将它与包含尽可能多的物品可能性的数组(即一个充满所有可能的乳制品的数组(进行比较,如果它与某个数组中的某个物品匹配(就像你在dairy数组中输入"Milk",并将其打印在标题"dairy"下(,并以这种方式进行排序,但我不知道如何做到这一点。它会像这样打印出来:
[乳制品]
牛奶
奶酪
【干货】
谷物
面包
等等。
我也不知道如何在打印时进行换行,我看到你可以做一个空的Console.WriteLine();
,但由于它打印出了一整块数据——打印出purchInp
,我看不出它会如何工作。
以下是一些可以使用的工具:
- 为了可读性,请使用缩进:(
- 为了更好地进行比较,请比较
ToLower()
,使"是"one_answers"是"都匹配 - 用于拆分字符串:
List<string> items = purchInp.Split(",");
- 用于不同行打印
foreach(var item in items) { Console.WriteLine(item) };
- 对于存储类别,请使用新类或集合:
var knownItems = new Dictionary<string,List<string>>(); knownItems.Add("Diary", new List<string>() { "Milk", "Cream" });