Saltar al contenido

División de una matriz en 2 matrices C #

Solución:

Puede usar linq:

firstArray = array.Take(array.Length / 2).ToArray();
secondArray = array.Skip(array.Length / 2).ToArray();

¿Por qué funciona esto, a pesar de la paridad del tamaño de la matriz original?

El primer arreglo toma array.Length / 2 elementos, y el segundo omite el primero array.Length / 2 elementos, significa que no hay ningún conflicto entre estas dos matrices. Por supuesto, si el número de elementos es impar, no podemos dividir la matriz en dos partes del mismo tamaño.

Si desea tener más elementos en la primera mitad (en el caso impar), haga esto:

firstArray = array.Take((array.Length + 1) / 2).ToArray();
secondArray = array.Skip((array.Length + 1) / 2).ToArray();

string[] words = {"apple", "orange", "banana", "pear", "lemon"};
int mid = words.Length/2;
string[] first = words.Take(mid).ToArray();
string[] second = words.Skip(mid).ToArray();

Si no quiere / no puede usar LINQ, simplemente puede hacer:

    string[] words = { "apple", "orange", "banana", "pear", "lemon" };
    string[] firstarray, secondarray;
    int mid = words.Length / 2;
    firstarray = new string[mid];
    secondarray = new string[words.Length - mid];
    Array.Copy(words, 0, firstarray, 0, mid);
    Array.Copy(words, mid, secondarray, 0, secondarray.Length);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *