Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/11/2011, 08:16
Avatar de Aquaventus
Aquaventus
 
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Arreglos con C# operadores dentro de un []string

Hola AIQ1516!.
1º Bienvenido al Foro.
2º Lo que tienes que hacer son eso es recorrer los valores de tu array[] y hacerles la operación. Te dejo un código de un Formulario con solo un Label que va a mostrar la respuesta :
Código C:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace WindowsFormsApplication4
  11. {
  12.     public partial class Form5 : Form
  13.     {
  14.         public Form5()
  15.         {
  16.             InitializeComponent();
  17.         }
  18.  
  19.         //Coloco los valore que contienen manualmente
  20.         string[] array = {"1","+","2","*","3","-","4"};
  21.         Double total = 0;
  22.         Int32 operador = 0;
  23.  
  24.         private void Form5_Load(object sender, EventArgs e)
  25.         {
  26.             try
  27.             {
  28.                 //saber la longitud del array[] y recorrerlo
  29.                 for (int i = 0; i < array.Length; i++)
  30.                 {
  31.                     //Vamos a comparar el contenido de array si es...
  32.                     switch (array[i])
  33.                     {
  34.                             //Suma
  35.                         case "+":
  36.                             operador = 1;
  37.                             break;
  38.                             //Resta
  39.                         case "-":
  40.                             operador = 2;
  41.                             break;
  42.                             //Multiplicacion
  43.                         case "*":
  44.                             operador = 3;
  45.                             break;
  46.                             //Division
  47.                         case "/":
  48.                             operador = 4;
  49.                             break;
  50.                             //Residuo
  51.                         case "%":
  52.                             operador = 5;
  53.                             break;
  54.                             //Si no es ninguno de los anteriores entonces asumiremos que...
  55.                         default:
  56.                             //Si el contenido es un numero
  57.                             if (char.IsNumber(Convert.ToChar(array[i])))
  58.                             {
  59.                                 switch (operador)
  60.                                 {
  61.                                         //Como la primera posicion va a ser un numero
  62.                                         //Solamente pasamos el valor
  63.                                     case 0 :
  64.                                         total = Convert.ToDouble(array[i]);
  65.                                         break;
  66.                                     case 1 :
  67.                                         //Como el contenido anterior fue suma
  68.                                         //Entonces sumamos
  69.                                         total = total + Convert.ToDouble(array[i]);
  70.                                         break;
  71.                                     case 2 :
  72.                                         //Como el contenido anterior fue resta
  73.                                         //Entonces restamos
  74.                                         total = total - Convert.ToDouble(array[i]);
  75.                                         break;
  76.                                     case 3 :
  77.                                         //Como el contenido anterior fue multiplicacion
  78.                                         //Entonces multiplicamos
  79.                                         total = total * Convert.ToDouble(array[i]);
  80.                                         break;
  81.                                     case 4 :
  82.                                         //Como el contenido anterior fue division
  83.                                         //Entonces dividimos
  84.                                         total = total / Convert.ToDouble(array[i]);
  85.                                         break;
  86.                                     case 5 :
  87.                                         //Como el contenido anterior fue residuo
  88.                                         //Entonces hayamos el residuo de la division
  89.                                         total = total % Convert.ToDouble(array[i]);
  90.                                         break;
  91.                                 }
  92.                             }
  93.                             //Sino es numero mandaremos un mensaje
  94.                             else
  95.                             {
  96.                                 //Mensaje personalizado
  97.                                 MessageBox.Show("La posicion " + i.ToString() + "No es una operacion matematica ni numero \n" +
  98.                                     "Contenido de la posicion " + i.ToString() + " : " + array[i] + ". \n" +
  99.                                     "Fin de la Operacion del Metodo.","Contenido no numerico dentro del array",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
  100.                                 //Salimos de toda la estructura y finaliza toda operacion
  101.                                 return;
  102.                             }
  103.                             break;
  104.                     }
  105.  
  106.                 }
  107.                 //Una vez finalizado todo el recorrido imprimimos el total
  108.                 label1.Text = total.ToString();
  109.             }
  110.             //En Caso suceda en error de excepcion
  111.             catch (Exception ex)
  112.             {
  113.                 //Mostraremos el mensaje de la incidencia
  114.                 MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  115.             }
  116.  
  117.         }
  118.     }
  119. }
4º Espero te haya sido útil ya que está explicado para que puedas entender. Probablemente sea mucho código pero está con validaciones. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 26/11/2011 a las 08:23