我已经为POS(销售点)编写了一个控制台应用程序。这是我的任务。我成功地完成了它,但我的教授要求用结构和列表再次完成它。这是我的结构和列表的代码,我省略了不必要的应用程序代码:
namespace simplePOS
{
struct Product
{
public string productName;
public double productUnitPrice;
public int productQty;
}
class Program
{
static void Main(string[] args)
{
List<Product> Products = new List<Product>();
Product P;
P.productName = Console.ReadLine();
P.productUnitPrice = Convert.ToDouble(Console.ReadLine());
P.productQty = Convert.ToInt32(Console.ReadLine());
Products.Add(P);
foreach(Product x in Products){ //This doesn't work.
Console.WriteLine(x);
}
Console.ReadLine();
}
}
现在您可以看到我创建了一个结构,然后创建了一个列表并保存了struct&#34; P&#34;在列表中。现在我的问题是如何访问该对象&#34; P&#34;保存在列表中以显示某些循环中的几个产品,比如for循环?
答案 0 :(得分:1)
覆盖ToString()
struct Product
{
public string productName;
public double productUnitPrice;
public int productQty;
public override string ToString()
{
return string.Format("Name: {0}, Price: {1}, Qty: {2}",productName,productUnitPrice,productQty);
}
}
继续使用
foreach (Product x in Products)
{
Console.WriteLine(x);
}
这样你可以根据需要进行格式化
答案 1 :(得分:0)
foreach(Product x in Products)
{
Console.WriteLine(x);
}
会给你一些结果:&#34; .Product&#34;因为产品是一个结构。 要获得正确的结果,您应该使用Product结构中定义的属性,请参阅下面的
foreach(Product x in Products)
{
Console.WriteLine("Product: "+x.productName);
}
所以它会给你结果
产品:abc
产品:xyz