Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想把价格与特定产品联系起来_C# - Fatal编程技术网

C# 我想把价格与特定产品联系起来

C# 我想把价格与特定产品联系起来,c#,C#,所以我有这个代码,我的问题是我想用商品代码(codigo)来找出产品和价格(precio) 就像我把“01”放在屏幕上一样,它会在屏幕上显示它是什么产品以及它的价格,然后把它加在购物清单上 另一个问题是,它不能有模块化编程(是的,我知道…),因为是为一个朋友和他的技术是有点蠢货。但如果有必要,就模块化地做,我稍后会尝试更改它 我只需要找出如何获得产品名称和价格与项目代码 很抱歉,代码是西班牙语的 namespace CodigoSupermercado { public struct L

所以我有这个代码,我的问题是我想用商品代码(codigo)来找出产品和价格(precio)

就像我把“01”放在屏幕上一样,它会在屏幕上显示它是什么产品以及它的价格,然后把它加在购物清单上

另一个问题是,它不能有模块化编程(是的,我知道…),因为是为一个朋友和他的技术是有点蠢货。但如果有必要,就模块化地做,我稍后会尝试更改它

我只需要找出如何获得产品名称和价格与项目代码

很抱歉,代码是西班牙语的

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)*/
        }
    }
}

您正在使用一个数组。数组有一个固定的长度,这使得它不可能添加一个可变数量的元素,并且只有在您事先知道确切数量的情况下才能工作。使用列表代替

var v = new List<Lista>();
v.Add(element);
如果使用列表,这将成为

v.Add(new Lista { producto = "aceite mezcla", precio = 6.00, codigo = 01 });
在这两种情况下(数组或列表),您都可以这样简单地打印输出:

v[0] = 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}     |");
}
另见:


现在,对于您的问题:您可以使用搜索产品,但首先必须将用户的输入(通常为
字符串
转换为
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}");
    }
}

所以,我会在这里使用列表(听起来有点奇怪…)。列表允许您动态添加、存储和稍后删除特定类型的对象(例如本例中的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;
    }
static void Main(字符串[]args)
{
列表产品=新列表();
products.Add(new Lista(){codigo=01,precio=6.00,producto=“aceite-mezcla”});
products.Add(new Lista(){codigo=02,precio=2.00,producto=“arroz”});
//打印“产品”
foreach(产品中的列表)
{
Console.WriteLine(string.Format(“{0}\t{1}\t{1}”,l.codigo,l.producto,l.precio));
}
int控制台输入;
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();
}
公共结构列表
{
公共双精度;
公共字符串产品;
公共int codigo;
}

我们在这里要做的是,首先声明一个初始化列表,然后将这些产品添加到列表中(至少我认为我们谈论的是某种产品,最好为变量想出一个好名字)。然后我们获取控制台的输入,如果是整数,则进一步处理它。我们在tel列表中搜索一个属性为codigo==consoleInput的项目,它意味着一个与用户在控制台中输入的内容具有相同心脏功能的项目。之后,我们将其打印在屏幕上。

如果您仅使用
codigo
查找产品,为什么不使用
字典
?您只需循环并返回包含所需
.codigo
Lista