Longitud de arreglo con 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
.
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.
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#.
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.
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#.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.