Buscar elemento en arreglo de C# - Nuestro IndexOf

C# – Buscar elemento en arreglo

En este post de programación con C# te mostraré cómo buscar un elemento en un array. De este modo vamos a saber si un arreglo contiene determinado elemento, y si lo contiene, sabremos en qué posición está.

Básicamente vamos a buscar el índice que un elemento tiene dentro de un arreglo de C sharp. Te mostraré dos formas: una usando métodos que ya existen y otra que es una forma manual.

Con Array.IndexOf

El método Array.IndexOf de C# nos devuelve el índice que el elemento ocupa dentro del arreglo, o -1 en caso de que no exista. Su sintaxis es:

Posible índice = Array.IndexOf(arreglo, búsqueda);

Aquí un ejemplo:

using System;

namespace App
{
    class Programa
    {
        static void Main(string[] args)
        {
            int[] numeros = { 999, 28, 11, 96, 1, 2, 45, 0, 1 };
            int busqueda = 855;
            int indice = Array.IndexOf(numeros, busqueda);
            if (indice == -1)
            {
                Console.WriteLine("El elemento {0} no existe", busqueda);
            }
            else
            {
                Console.WriteLine("El elemento {0} existe en la posición {1}", busqueda, indice);
            }
        }
    }
}

En este caso la búsqueda no existe, lo he hecho a propósito para demostrarlo, pero si cambias el valor verás que funciona. Esto igualmente funciona para otros tipos de arreglo.

Buscar en array de C# manualmente

Nosotros podemos fabricar nuestro propio IndexOf. Básicamente tenemos que recorrer el arreglo e ir comparando cada elemento con la búsqueda.

Si encontramos el elemento que buscamos, devolvemos el índice en el que vamos. En caso de terminar de recorrer el arreglo y no encontrar lo que buscamos, devolvemos -1. Eso se traduce al siguiente código:

using System;
// https://parzibyte.me/blog

namespace App
{
    class Programa
    {

        static int buscarIndice(int[] arreglo, int busqueda)
        {
            for (int i = 0; i < arreglo.Length; i++)
            {
                if (arreglo[i] == busqueda)
                {
                    return i;
                }
            }
            return -1;
        }
        static void Main(string[] args)
        {
            int[] numeros = { 999, 28, 11, 96, 1, 2, 45, 0, 1 };
            int busqueda = 11;
            int indice = buscarIndice(numeros, busqueda);
            if (indice == -1)
            {
                Console.WriteLine("El elemento {0} no existe", busqueda);
            }
            else
            {
                Console.WriteLine("El elemento {0} existe en la posición {1}", busqueda, indice);
            }
        }
    }
}

En este caso el ejemplo que te he mostrado es con enteros, pero eso funcionará con cualquier tipo de dato siempre y cuando sepamos compararlo correctamente; incluso podríamos usar genéricos.

Al momento de ejecutarlo en mi caso aparece lo siguiente:

Buscar elemento en arreglo de C# - Nuestro IndexOf
Buscar elemento en arreglo de C# – Nuestro IndexOf

Así que funciona perfectamente, pues con esto puedes saber si el arreglo contiene o no el elemento, y si lo contiene, tendrás el índice para saber su posición.

Hay otras variantes que por ejemplo buscan el último índice (recorriendo el arreglo de fin a principio), esto es útil cuando el arreglo puede tener repetidos, pues IndexOf regresa el índice del primer elemento.

Para terminar te dejo con más tutoriales de C sharp o C#.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *