Hoy voy a enseñarte cómo calcular la longitud de un arreglo en C#, es decir, saber cuántos elementos contiene un arreglo.

Veremos dos métodos: uno que es el más simple, y otro que puede ser usado si quieres saber la longitud de un array en C sharp sin Length.

Método simple con Length

La longitud de un arreglo puede saberse accediendo a la propiedad Length del mismo. Así:

int[] arreglo = { 999, 28, 11, 96, 1, 2, 45, 0, 1 };
int longitudConLength = arreglo.Length;

Y el tipo de dato del arreglo puede ser cualquiera. Ahora te voy a enseñar cómo calcular la longitud de un arreglo sin acceder a Length en caso de que quieras saberlo o si tu profesor ha prohibido usar ese método.

Longitud de arreglo sin Length

Para esto podemos definir nuestra propia función, hacer un foreach e ir aumentando un contador para finalmente regresarlo como resultado de la función.

A continuación te muestro cómo hacerlo en un arreglo de tipo int, pero después te enseñaré cómo usar los genéricos para usar cualquier tipo de dato.

static int longitudDeArregloEntero(int[] arreglo)
{
    int longitud = 0;
    foreach (var elemento in arreglo) longitud++;
    return longitud;
}

En este caso declaramos la longitud en 0, luego recorremos el arreglo y vamos aumentando esta longitud. Finalmente en la línea 5 la regresamos. Ahora veamos el enfoque genérico para cualquier tipo de arreglo:

static int longitudDeArreglo<T>(IList<T> arreglo)
{
    int longitud = 0;
    foreach (var elemento in arreglo) longitud++;
    return longitud;
}

En este caso en lugar de definir el tipo, definimos que será un genérico de IList<T> justo como lo expliqué en mi post de arrays genéricos con C#.

Modo de uso

Ya te mostré las funciones, ahora veamos cómo invocar al método que calcula la longitud del arreglo de enteros. Queda así:

static void Main(string[] args)
{
    int[] arreglo = { 999, 28, 11, 96, 1, 2, 45, 0, 1 };
    int longitud = longitudDeArregloEntero(arreglo);
    int longitudConLength = arreglo.Length;
    Console.WriteLine("La longitud según método es {0}, y según .Length es {0}", longitud, longitudConLength);
}

También puedes invocar a la función de genéricos así:

static void Main(string[] args)
{
    Persona[] arreglo = { new Persona("Luis", 24), new Persona("María", 24) };
    int longitud = longitudDeArreglo(arreglo);
    int longitudConLength = arreglo.Length;
    Console.WriteLine("La longitud según método es {0}, y según .Length es {0}", longitud, longitudConLength);
}

Fíjate en que ahora estamos invocando a longitudDeArreglo, pero en el ejemplo anterior invocamos a longitudDeArregloEntero; hice esto para ponerte ejemplos de cómo invocar a ambas funciones.

Poniendo todo junto

Longitud de arreglo con C#

El código completo queda como se ve a continuación, ahí estoy definiendo la clase, colocando otros arreglos (que están comentados para que no haya problemas con el nombre de las variables) y todo lo que necesité para este post:

using System;
using System.Collections.Generic;

namespace App
{
    class Persona
    {
        public string nombre;
        public int edad;
        public Persona(string nombre, int edad)
        {
            this.nombre = nombre;
            this.edad = edad;
        }

        public override string ToString()
        {
            return "Persona con nombre " + this.nombre + " y edad " + this.edad;
        }
        public void saludar()
        {
            Console.WriteLine("Me llamo " + this.nombre);
        }
    }
    class Programa
    {
        static int longitudDeArreglo<T>(IList<T> arreglo)
        {
            int longitud = 0;
            foreach (var elemento in arreglo) longitud++;
            return longitud;
        }
        static int longitudDeArregloEntero(int[] arreglo)
        {
            int longitud = 0;
            foreach (var elemento in arreglo) longitud++;
            return longitud;
        }

        /*
            https://parzibyte.me/blog/
        */
        static void Main(string[] args)
        {
            // int[] arreglo = { 999, 28, 11, 96, 1, 2, 45, 0, 1 };
            // string[] arreglo = { "Hola", "Mundo" };
            Persona[] arreglo = { new Persona("Luis", 24), new Persona("María", 24) };
            int longitud = longitudDeArreglo(arreglo);
            int longitudConLength = arreglo.Length;
            Console.WriteLine("La longitud según método es {0}, y según .Length es {0}", longitud, longitudConLength);
        }
    }
}

Por aquí te dejo más posts sobre C#.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto