我正在设置一个控制台应用程序,它将接收用户的输入,并使用类“ Items”创建一个新对象。但是我也想要一个循环,以便用户可以进行多个输入,如果我希望变量“ foo”在循环中进行更改,我应该使用哪种循环以及它如何工作?
我尝试了一些for循环,但我试图将“ i”放在“ foo”之后,但没有使其正常工作...
"error": {
"charge": "ch_1EhvwjBqa3pLeb3ypVgXafhI",
"code": "authentication_required",
"decline_code": "authentication_required",
"message": "Your card was declined. This transaction requires two-factor authentication.",
[...]
编辑: 抱歉,我当时想简化一切。我的错! 就像其中一条评论所说的那样,我想存储在每次迭代中创建的每个对象。然后将其显示为“购物清单”,其中最贵的商品在顶部,最便宜的商品在底部。
这是我尝试过的事情之一。 (不是for循环,但具有与i ++相同的概念,等等)
Console.WriteLine("Write a item:");
string item = Console.ReadLine();
Console.WriteLine("Write a price:");
decimal price = Convert.ToDecimal(Console.ReadLine());
var foo = new Items(item, price);
Console.Write(" {0} {1} ", foo.Item, foo.Price);
答案 0 :(得分:1)
编译器肯定会告诉您此语法错误:
var foo(i) = new Items(item, price);
变量声明已损坏。 看起来像,您正在尝试创建一系列带编号的变量。每当您要执行此操作时,确实想要的就是一个集合。例如List<T>
之类的东西。您可以在循环之前 声明列表,然后在循环内添加到列表。
您可能还想在循环之前声明输入变量。并明智地命名变量,这将有助于您理解和支持自己的代码。 (例如,您应该将Items
类重命名为Item
。因为它表示单个“ item”对象。)
类似的东西:
var items = new List<Items>();
var itemName = string.Empty;
do
{
Console.WriteLine("Insert items that you want to buy, when you are finnish, write 'done'");
Console.Write("Insert a item: ");
itemName = Console.ReadLine();
switch (itemName.ToLower())
{
case "done":
break;
default:
Console.WriteLine("Write a price:");
decimal itemPrice = Convert.ToDecimal(Console.ReadLine());
var item = new Items(itemName, itemPrice);
items.Add(item);
break;
}
} while (itemName != "done");
// Here you now have a list of items. You can loop over that list for further logic, output, etc.
答案 1 :(得分:0)
您也可以尝试使用C#创建应用程序。您可以定义要添加的项目数的长度。在这里我用了2个长度来添加购物车中的物品。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace StackQue
{
class Sample
{
public static void Main(string[] args)
{
Dictionary<string, decimal> items = new Dictionary<string, decimal>();
for (var i = 0; i < 2; i++)
{
Console.WriteLine("Write an item");
string item = Console.ReadLine();
Console.WriteLine("Write an price");
decimal price = Convert.ToDecimal(Console.ReadLine());
items.Add(item, price);
}
foreach (var item in items)
{
Console.WriteLine("Item " + item.Key + " have price " + item.Value + ".");
}
}
}
}