所以我有这个代码,我的问题是我想找到项目的代码(codigo)什么是产品和价格(precio)。
有点像我放'01'它会在屏幕上显示它是什么产品以及它的价格是多少,然后将它总结到购物清单
另一个问题是它不能进行模块化编程(是的,我知道..)原因是对于一个朋友而他的techer是有点傻瓜。但如果是必要的,那么它是模块化的,我会稍后尝试改变它。
我只需要了解如何使用商品代码
获取产品名称和价格我道歉,因为代码是西班牙语
namespace CodigoSupermercado
{
public struct Lista
{
public double precio;
public string producto;
public int codigo;
}
class Program
{
static void Main(string[] args)
{
Lista[] v;
v = new Lista[10];
v[0].producto = "aceite mezcla"; v[0].precio = 6.00; v[0].codigo = 01;
v[1].producto = "arroz"; v[1].precio = 2.00; v[1].codigo = 02;
v[2].producto = "azucar"; v[2].precio = 3.00; v[2].codigo = 03;
v[3].producto = "caraotas"; v[3].precio = 6.00; v[3].codigo = 04;
v[4].producto = "carne de primera"; v[4].precio = 15.00; v[4].codigo = 05;
v[5].producto = "carne de segunda"; v[5].precio = 10.00; v[5].codigo = 06;
v[6].producto = "harina precocida"; v[6].precio = 2.50; v[6].codigo = 07;
v[7].producto = "leche en polvo"; v[7].precio = 12.00; v[7].codigo = 08;
v[8].producto = "pasta"; v[8].precio = 2.50; v[8].codigo = 09;
v[9].producto = "pollo entero"; v[9].precio = 10.00; v[9].codigo = 10;
Console.WriteLine("Bienvenido al Sistema de Compras");
Console.WriteLine("ELiga los productos a facturar: ");
Console.WriteLine("| Cod | Producto | Precio |");
Console.WriteLine("| 01 |Aceite Mezcla | 6.00 |");
Console.WriteLine("| 02 |Arroz | 2.00 |");
Console.WriteLine("| 03 |Azucar | 3.00 |");
Console.WriteLine("| 04 |Caraotas | 6.00 |");
Console.WriteLine("| 05 |Carne de Primera | 15.00 |");
Console.WriteLine("| 06 |Carne de Segunda | 10.00 |");
Console.WriteLine("| 07 |Harina Precocida | 2.50 |");
Console.WriteLine("| 08 |Leche en Polvo | 12.50 |");
Console.WriteLine("| 09 |Pasta | 2.50 |");
Console.WriteLine("| 10 |Pollo Entero | 10.00 |");
Console.WriteLine("");
Console.WriteLine("");
/*here i was thinkin' making a while loop that ask after the input
if another item is gonna be purchased, till (next != 0)*/
}
}
}
答案 0 :(得分:0)
您正在使用数组。数组具有固定的长度,这使得无法向其添加可变数量的元素,并且仅在您事先知道确切数字时才有效。改为使用列表
var v = new List<Lista>();
v.Add(element);
然后你新创建的数组只包含空条目!里面没有Lista
个对象。你必须像这样添加它们:
v[0] = new Lista { producto = "aceite mezcla", precio = 6.00, codigo = 01 };
如果使用列表,则会变为
v.Add(new Lista { producto = "aceite mezcla", precio = 6.00, codigo = 01 });
在这两种情况下(数组或列表),你可以像这样简单地打印输出:
Console.WriteLine("| Cod | Producto | Precio |");
foreach (Lista l in v) {
Console.WriteLine($"| {l.codigo:00,3} |{l.producto, 18}|{l.precio:n2,-11} |");
}
另见:
现在,针对您的问题:您可以使用LINQ来搜索产品,但首先您需要将用户的输入转换为string
到int
}。
Console.WriteLine("Codigo = ");
string input = Console.ReadLine();
int codigo;
if (Int32.TryParse(input, out codigo)) {
Lista item = v.FirstOrDefault(l => l.codigo == codigo);
if (item != null) {
Console.WriteLine($"{item.producto} {item.precio:n2}");
}
}
答案 1 :(得分:0)
所以,我会在这里使用Listas List(听起来有点奇怪......)。列表允许您动态添加,存储以及稍后删除特定类型的对象(例如,此示例中为string,int或Lista)。此外,我们可以通过指定条件在列表中查找项目。
static void Main(string[] args)
{
List<Lista> products = new List<Lista>();
products.Add(new Lista() { codigo = 01, precio = 6.00, producto = "aceite mezcla" });
products.Add(new Lista() { codigo = 02, precio = 2.00, producto = "arroz" });
//Print out 'products'
foreach (Lista l in products)
{
Console.WriteLine(string.Format("{0}\t|{1}\t|{1}", l.codigo, l.producto, l.precio));
}
int consoleInput;
if(int.TryParse(Console.ReadLine(), out consoleInput))
{
Lista target = products.Find((lista) => lista.codigo == consoleInput);
if(traget != null)
Console.WriteLine(target.codigo + "\t" + target.producto + "\t" + target.precio);
}
Console.ReadLine();
}
public struct Lista
{
public double precio;
public string producto;
public int codigo;
}
我们在这里做的是,首先声明我们的列表初始化,然后我们将这些产品添加到我们的列表中(至少我认为是在谈论某种产品,总是更好地想到一个好名字一个变量)。然后我们获取控制台的输入,并且 - 如果它是一个整数 - 进一步处理它。我们在电话列表中搜索具有属性codigo == consoleInput的项目,表示具有相同有氧运动的项目,以及用户输入控制台的项目。之后,我们将其打印出来。