2017-03-04 16 views
-2

私はこのコードを持っている、私の問題は、商品のコード(コードギー)と価格(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

'codigo'を使って製品を見つけるのであれば、なぜ' Dictionary 'を使わないのでしょうか? – UnholySheep

+0

あなたはループし、あなたが望む '.codigo'を持っている' Lista'を返すだけでいいですか? –

答えて

0

だから、ここではListas List(音がちょっと変わっています...)を使用します。リストを使用すると、特定のタイプ(この例では文字列、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というプロパティを持つアイテムのtelリストを検索します。ユーザーがコンソールに入力したものと同じcardioのアイテムを意味します。その後、画面に印刷します。

0

です。配列には固定長があり、可変数の要素を追加することは不可能で、正確な数を事前に知っている場合にのみ動作します。リストを代わりに使用する

var v = new List<Lista>(); 
v.Add(element); 

次に、新しく作成された配列にはヌルエントリのみが含まれています。内部にはListaオブジェクトはありません。

:あなたがリストを使用している場合、これは両方のケースで

v.Add(new Lista { producto = "aceite mezcla", precio = 6.00, codigo = 01 }); 

(配列またはリスト)あなたはこのようなプリントアウトをsimplyfyすることができますになり

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}  |"); 
} 

も参照してください:


今、あなたの質問に:あなたは、製品を検索するためにLINQを使用することができますが、まずあなたがstringintにalwyasで、ユーザの入力を変換する必要があります。

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}"); 
    } 
} 
関連する問題