Longitud de arreglo con C#

Longitud de arreglo en C#

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#
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#.

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 *