Asumo que está trabajando con un conjunto básico de cuerdas:
var strItems = new string[] { "1", "2", "3", "4", "5" };
En .NET, esa matriz siempre va a ser de 5 elementos larga. Para eliminar un elemento, tendrá que copiar los elementos restantes en una nueva matriz y devolverlo. Establecer el valor en una posición a null
no lo elimina de la matriz.
Ahora, con cosas como LINQ esto es muy fácil (no se muestra aquí), o se puede hacer trampa utilizando la colección List<>
y hacer esto:
var list = new List<string>(strItems);
list.Remove("3");
strItems = list.ToArray();
Pero no creo que va a enseñar cualquier cosa.
El primer paso es encontrar el índice del elemento que desea eliminar. Puede usar Array.IndexOf
para ayudarlo. Vamos a buscar el elemento medio, "3":
int removeIndex = Array.IndexOf(strItems, "3");
Si no se encontró el elemento, devolverá un -1, a fin de comprobar de que antes de hacer nada.
if (removeIndex >= 0)
{
// continue...
}
Finalmente tiene que copiar los elementos (excepto el que está en el índice que no queremos) a una nueva matriz. Así, en total, se termina con algo como esto (comentado para la explicación):
string strInput = Console.ReadLine();
string[] strItems = new string[] { "1", "2", "3", "4", "5" };
int removeIndex = Array.IndexOf(strItems, strInput);
if (removeIndex >= 0)
{
// declare and define a new array one element shorter than the old array
string[] newStrItems = new string[strItems.Length - 1];
// loop from 0 to the length of the new array, with i being the position
// in the new array, and j being the position in the old array
for (int i = 0, j = 0; i < newStrItems.Length; i++, j++)
{
// if the index equals the one we want to remove, bump
// j up by one to "skip" the value in the original array
if (i == removeIndex)
{
j++;
}
// assign the good element from the original array to the
// new array at the appropriate position
newStrItems[i] = strItems[j];
}
// overwrite the old array with the new one
strItems = newStrItems;
}
Y ahora strItems
será la nueva matriz, menos el valor especificado para su eliminación.
¿Cuáles son '' intAmount' y strItems'? Está manipulando mucho sus índices for-loop dentro de sus bucles for, lo que generalmente es una mala idea. –
Puede aclarar su pregunta: usted dice [1,2,3,4,5], con la operación para eliminar 1, se convierte en [2,3,4,5,5]. ¿Cómo eliges 5 como el elemento para duplicar al final? – ssamuel
strItems es la matriz de cadenas, intAmount es la cantidad de elementos y strInput es el elemento que el usuario elige eliminar. – user1033065