Genesis Vargas J

Tutorial Colas en C#/Visual Basic NET: Insertar, Eliminar y Consultar Datos

Comparte:

Hola que tal amigos, hace falta 1 día para que se acabe el año y ¿que mejor que despedirlo aprendiendo más?. Esta vez les comparto este turorial sobre como trabajar con colas en C#, haremos las operaciones básicas: Insertar, Eliminar y Consultar en una Cola.

Lo primero que vamos a hacer es la interfaz del programa: para este ejemplo yo usaré una vista donde la persona introduzca un número que quiera guardar en la cola, también para que introduzca un número y verifique su existencia y de igual manera hayan dos opciones para consultar todo lo que hay en la cola o para vaciar la cola por completo; Ustedes diseñen la interfaz igual que esta:

Como podemos ver en la interfaz haremos las tres operaciones básicas: Insertar, Eliminar y Consultar. Entonces ¡manos a la obra!.

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.VisualBasic;
using System.Collections;

namespace TutorialCola
{
    public partial class Form1 : Form
    {
        bool encontrado;
        Queue mifila = new Queue();
        
        public Form1()
        {
            InitializeComponent();
        }

        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (TxtNumero.Text != "")
            {
                mifila.Enqueue(Convert.ToInt32(TxtNumero.Text));
                MessageBox.Show("El numero ha sido guardado");
                TxtNumero.Clear();
            }
        }

        private void BtnConsultar_Click(object sender, EventArgs e)
        {
            if(TxtConsulta.Text != "")
            {
                encontrado = mifila.Contains(Convert.ToInt32(TxtConsulta.Text));
                MessageBox.Show("¿El numero consultado existe? : " + encontrado);
            }            
        }

        private void BtnEliminar_Click(object sender, EventArgs e)
        {
            DialogResult msj = MessageBox.Show("¿esta seguro que desea vaciar todos los elementos de la cola?", "Mensaje", MessageBoxButtons.OKCancel);
            if (msj == DialogResult.OK)
            {
                mifila.Clear();
                MessageBox.Show("Cola vaciada");
            }
        }

        private void BtnConsultarTodo_Click(object sender, EventArgs e)
        {
            string mensaje;
            mensaje = "La cola tiene " + mifila.Count + " elementos: ";
            foreach (int n in mifila)
            {
                mensaje = mensaje + n + ", ";
            }
            MessageBox.Show(mensaje);
        }
    }
}

En el código podemos observar que hemos importado el esapcio de nombre System.Collections que es el que necesitamos para trabajar con las colas, creamos un objeto Queue(Cola) y creamos una variable booleana para identificar la existencia del numero que consultemos. En los procedimientos (void) de cada boton esta el respectivo uso de la cola segun su función: para guardar algo en una cola usamos el método: Enqueue que recibe como párametro el valor a guardar, para eliminar/vaciar usamos el método Clear, para saber si un elemento esta en la cola usamos la funcion Contains a la cual le pasamos como párametro el valor a encontrar, esta función nos devolvera un valor true o false y para consultar todos los elementos de la cola usamos un for each en la cola para almacenar los valores recorridos/encontrados en un variable string que la mostraremos en un messageBox.

Este es un ejemplo de las colas (no "desncole" elemento por elemento, solo coloque el ejemplo de encolar elemento por elemento y en la busqueda total vemos el ordenamiento).

Bueno eso es todo espero que les sirva mucho para aprender y practicar. les dejo una carpeta comprimida para que descarguen el ejemplo.

Si te gusto el tutorial no dudes en compartirlo y dejar tu comentario.

Comentarios


genesis vargas

Soy Genesis Vargas Jiménez, autor de éste blog. Me gusta desarrollar software en todas las plataformas (web, móvil y desktop) y compartir conocimiento para ayudar a muchas personas.

Desde el 2015 soy MVP Microsoft en Visual Studio y tecnologías de desarrollo, reconocimiento que me enorgullece mucho.

MVP Genesis Vargas J

A PHP Error was encountered

Severity: Core Warning

Message: Module 'timezonedb' already loaded

Filename: Unknown

Line Number: 0

Backtrace: