En este post veremos un ejemplo para invertir un arreglo en C# usando métodos que el lenguaje provee.
Invertir arreglo en C#
Función Reverse en C#
Para invertir un arreglo simplemente llamamos al método Reverse de Array en C#, así como en el siguiente ejemplo:
using System;/*
Invertir un arreglo en C#
Demostración con arreglo de cadenas pero también funciona
para otros tipos de arreglos
@author parzibyte
Visita: parzibyte.me/blog
*/classMainClass{publicstaticvoid Main (string[] args){string[] lenguajes ={"C#","C","C++","Go","Java","PHP","JavaScript","Python"};
Console.WriteLine("========\nImprimiendo arreglo antes de invertir\n========");foreach(string lenguaje in lenguajes){
Console.WriteLine(lenguaje);}// La siguiente línea invierte el arreglo:
Array.Reverse(lenguajes);
Console.WriteLine("========\nImprimiendo arreglo DESPUÉS de invertir\n========");foreach(string lenguaje in lenguajes){
Console.WriteLine(lenguaje);}}}
Recuerda indicar al inicio Using System; y si no lo haces, llama a Reverse usando System.Array.Reverse.
Usando método manual
Invertir arreglo con C sharp
Puede que quieras conocer el algoritmo para invertir el arreglo de manera manual o con métodos propios. Podemos hacer esto con un simple ciclo for que va desde el índice 0 hasta el índice central del arreglo.
En cada paso del ciclo intercambiamos el valor actual por el del extremo opuesto o extremo derecho. El código queda así:
using System;// https://parzibyte.me/blognamespace App
{classPrograma{staticvoidMain(string[] args){int[] arreglo ={50,20,90,10,9};
Console.WriteLine("Antes de invertir: ");foreach(var elemento in arreglo){
Console.WriteLine(elemento);}for(int indiceDelExtremoIzquierdo =0; indiceDelExtremoIzquierdo < arreglo.Length /2; indiceDelExtremoIzquierdo++){int indiceDelExtremoDerecho = arreglo.Length - indiceDelExtremoIzquierdo -1;int temporal = arreglo[indiceDelExtremoDerecho];
arreglo[indiceDelExtremoDerecho]= arreglo[indiceDelExtremoIzquierdo];
arreglo[indiceDelExtremoIzquierdo]= temporal;}
Console.WriteLine("Después de invertir: ");foreach(var elemento in arreglo){
Console.WriteLine(elemento);}}}}
Lo importante está desde la línea 18 hasta la línea 24. Hacemos el ciclo for empezando en 0 y vamos a ir hasta antes de Longitud del arreglo entre 2.
Estamos dividiendo de manera entera, por lo que el número será redondeado hacia abajo. Por ejemplo, si la longitud es 5, el número será 2, y el ciclo irá hasta 1. Si la longitud es 6, el número será 3 y el ciclo irá hasta 2.
Luego calculamos el índice del extremo derecho que en este caso está dado por la longitud del arreglo menos el índice del izquierdo menos 1. Almacenamos ese valor en un temporal y hacemos el intercambio.
La salida ya la has visto en la imagen del encabezado.
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.
Hoy vamos a ver dos maneras de invertir una cadena o string en C#. La primer forma que veremos será para invertir una cadena con métodos que el lenguaje proporciona, y la segunda de una forma más manual. Esta última forma para invertir una cadena será para aquellos casos en…
Hoy vamos a ver cómo invertir un arreglo en JavaScript de dos maneras: con un método manual que usa ciclos e intercambio de variables, y con uno que invierte el arreglo con funciones nativas. Voy a mostrar dos maneras de invertir el arreglo porque, aunque ya existe la función nativa,…
En este post voy a mostrar cómo ordenar arreglos en C# de manera ascendente y descendente usando un Comparison y llamando al método Array.Sort, además de usar CompareTo para comparar los valores. De esta manera se podrán ordenar arreglos de tipo string, double, float, int, etcétera. Algoritmos Si quieres usar…
En "Algoritmos"
2 comentarios en “Invertir arreglo en C#”
pollo
si el array es de Byte se haría igual, pero cambiando los int por byte???
si el array es de Byte se haría igual, pero cambiando los int por byte???
Sí, solo que recuerde que los índices siempre serán de tipo int ya que esos no cambian independientemente del tipo de dato