C# (C Sharp)

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#

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

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.