Insertar elemento en un array con C#

Ene 22, 2012 Codigos C# 6 comentarios

Hay algunas operaciones importantes cuando trabajamos con array que provocan cambios, por ejemplo, si tenemos un array a y un elemento x, haciendo a[j] = x se modifica el array, en este caso veremos como insertar un elemento en un array en una posición dada.

A continuación verás la implementación en C# del método Inserta(a, index, valor) que asigna el valor x en la posición index del array a, pero hay un detalle, y es que tenemos que desplazar los elementos a partir de la posición i en adelante. En este caso el elemento que esté en la última posición del array será eliminado, ya que en C#, el tamaño del array es fijo (no crece automáticamente como en otros lenguajes como Javascript) y no podemos insertar elementos en una posición negativa o que sea mayor que a.Length-1, que devuelve el tamaño del array – 1, ya que el primer índice del array es 0.

Código en C#:

public static void Inserta (int[] a, int index, int valor){
	if(index>=0 && index< a.Length){
              for(int i = a.Length-1; i>index; i--)
		  a[i]=a[i-1];
	      a[index] = valor;
	}
	else throw new Exception("Posición no válida");
}

Si tienen alguna duda o alguna otra implementación de este método, en los comentarios por favor.

Compartir:

6 comentarios

Forma parte de nuestra discusión y síguela de cerca

Hola, oye disculpa en mi clase de estructura de datos, me encargaron hacer que una palabra caiga de arriba hacia abajo y viceversa, y de izquierda a derecha y viceversa tmb, la aplicacion es en consola, y no se tiene que mostrar nada en pantallla hasta pocos segundos despues nada mas que se vea el caer de letra por letra, utilizando arreglos y objetos de la clase vector en mi clase letrero

Este es el metodo de mi clase letrero para que las letras salgan de izq a derecha, solo me hace falta el de arriba a abajo y en main podrias ayudarme? por favor

public static void Izq_Der(Vector vec)
{

int y = 10;
int final = (80 + vec.Tamaño()) / 2;
for (int i = vec.Tamaño()-1; i >= 0; i–)
{
int x = 1;
while (x < final)
{
Console.SetCursorPosition(x, y);
Console.Write(vec[i]);
for (int r = 0; r < 1000000; r++) ;
if (x < final – 1)
{
Console.SetCursorPosition(x, y);
Console.Write(' ');

}
x++;
if (x == final)
final–;
}

}
}

Autor: LUIS | Fecha: Feb 18, 2012.

Utilizar una función definida como:
public static int [] Informacion (int [] valores)
Ejemplo:
valores[0]=23, valores[0]=43,valores[0]=13,valores[0]=93
resultado[0] = 93 // mayor
resultado[1] = 13 // menor
resultado[2] = 43 // promedio

eso es lo que piden en la primera pregunta

Autor: mich | Fecha: Mar 10, 2012.

@mich, ya ese ejercicio está resuelto, busca en el post de Ejercicios resueltos

Autor: Tomy | Fecha: Abr 1, 2012.

hola quisiera que me ayudaran a saber como puedo eliminar ,actualizar datos de 10 arreglos en c# consola y como puedo hacer para que al ingresar un dato no lo pueda volver a ingresar el mismo y m pueda ir guardando otros diferentes per no iguales por favor es urgente

Autor: enrique | Fecha: Oct 17, 2013.

@enrique: Para eso necesitarías ir guardando los datos que el usuario va ingresando en una consola en un array, y cada vez que el usuario entre otro elemento, chequear que no esté ya contenido en el array, para eso puedes usar las funciones IndexOf() o Contains(). Aquí puedes ver un ejemplo de como recoger los datos que el usuario entre a través d la consola: http://www.puntopeek.com/programacion/creando-una-aplicacion-de-consola-c-sharp/

Autor: Tomy | Fecha: Oct 23, 2013.

como eliminar elementos pares de una cola en c#

Autor: ivan | Fecha: Ago 16, 2016.

Escribe tu comentario

Requerido.

Requerido. No público.

Si tienes alguno.