Array Slicing en C#
-
Corte de array con el método Linq en
C#
-
Array Slicing con la clase
ArraySegment
enC#
-
Corte de array con una función de extensión en
C#
Este tutorial presentará los métodos para dividir un array en C#.
Corte de array con el método Linq en C#
El proceso de dividir un array en una submatriz más pequeña se conoce como división de array. Linq se utiliza para integrar la funcionalidad de consulta con las estructuras de datos en C#. La función Take(x)
de Linq copia x
número de elementos desde el inicio de una estructura de datos. El siguiente ejemplo de código nos muestra cómo podemos dividir un array con Linq en C#.
using System;
using System.Linq;
namespace array_slicing {
class Program {
static void Main(string[] args) {
string[] foo = { "one", "two", "three", "four", "five" };
string[] bar = foo.Take(2).ToArray();
foreach (var e in bar) {
Console.WriteLine(e);
}
}
}
}
Producción :
one
two
Inicializamos el array de cadenas foo
y la dividimos en otra matriz de cadenas, bar
, que contiene los dos primeros elementos del array foo
. Este método es muy limitado porque solo podemos dividir los elementos iniciales del array con este método.
Array Slicing con la clase ArraySegment
en C#
La clase ArraySegment
se utiliza para dividir un array en una submatriz en C#. El Constructor de la clase ArraySegment
toma el array a segmentar, el índice inicial y el número de elementos a segmentar y nos da una submatriz. El siguiente ejemplo de código nos muestra cómo podemos dividir un array con la clase ArraySegment
en C#.
using System;
using System.Linq;
namespace array_slicing {
class Program {
static void Main(string[] args) {
string[] a = { "one", "two", "three", "four", "five" };
var segment = new ArraySegment<string>(a, 2, 3);
foreach (var s in segment) {
Console.WriteLine(s);
}
}
}
}
Producción :
three
four
five
Inicializamos el array de cadenas a
y la dividimos en un subarray segment
que contiene 3 elementos a partir del índice 2 del array a
con el constructor de la clase ArraySegment
. Es un mejor enfoque porque podemos cortar un array desde el medio con este enfoque.
Corte de array con una función de extensión en C#
Los métodos de extensión nos permiten agregar funciones a los tipos de datos existentes sin declarar un tipo de datos personalizado. También podemos definir un método de extensión definido por el usuario en lugar de un método incorporado para cortar un array en C#. Este método de extensión puede tomar el índice inicial y final del segmento y devolver la submatriz dentro de este rango. El siguiente ejemplo de código nos muestra cómo definir una función de extensión para dividir un array en C#.
using System;
using System.Collections.Generic;
namespace iterate_through_a_list {
public static class Extensions {
public static T[] Slice<T>(this T[] source, int start, int end) {
if (end < 0) {
end = source.Length + end;
}
int len = end - start;
T[] res = new T[len];
for (int i = 0; i < len; i++) {
res[i] = source[i + start];
}
return res;
}
}
class Program {
static void Main(string[] args) {
string[] values = { "one", "two", "three", "four", "five" };
string[] slice = values.Slice(2, 4);
foreach (var s in slice) {
Console.WriteLine(s);
}
}
}
}
Producción :
three
four
five
Creamos un método de extensión, Slice()
, que toma el índice inicial y final del segmento y devuelve el subarray cortado. Inicializamos el array de cadenas values
y la dividimos en el array slice
que contiene los valores del índice 2
al índice 4
del array values
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn