Tranchage de tableau en C#
-
Tranchage de tableau avec la méthode Linq en
C#
-
Array Slicing avec la classe
ArraySegment
enC#
-
Tranchage de tableau avec une fonction d’extension en
C#
Ce didacticiel présentera les méthodes pour découper un tableau en C#.
Tranchage de tableau avec la méthode Linq en C#
Le processus de découpage d’un tableau en un sous-tableau plus petit est appelé découpage de tableau. Le Linq est utilisé pour intégrer la fonctionnalité de requête aux structures de données en C#. La fonction Take(x)
de Linq copie x
nombre d’éléments à partir du début d’une structure de données. L’exemple de code suivant nous montre comment découper un tableau avec 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);
}
}
}
}
Production:
one two
Nous avons initialisé le tableau de chaînes foo
et l’avons découpé en un autre tableau de chaînes - bar
, contenant les deux premiers éléments du tableau foo
. Cette méthode est très limitée car nous ne pouvons découper que les éléments de départ du tableau avec cette méthode.
Array Slicing avec la classe ArraySegment
en C#
La classe ArraySegment
est utilisée pour découper un tableau en un sous-tableau en C#. Le constructeur de la classe ArraySegment
prend le tableau à segmenter, l’index de départ et le nombre d’éléments à segmenter et nous donne un sous-tableau. L’exemple de code suivant nous montre comment découper un tableau avec la classe 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);
}
}
}
}
Production:
three four five
Nous avons initialisé le tableau de chaînes a
et l’avons découpé en un sous-tableau segment
contenant 3 éléments à partir de l’index 2 du tableau a
avec le constructeur de la classe ArraySegment
. C’est une meilleure approche car nous pouvons découper un tableau à partir du milieu avec cette approche.
Tranchage de tableau avec une fonction d’extension en C#
Les méthodes d’extension nous permettent d’ajouter des fonctions aux types de données existants sans déclarer un type de données personnalisé. Nous pouvons également définir une méthode d’extension définie par l’utilisateur au lieu d’une méthode intégrée pour découper un tableau en C#. Cette méthode d’extension peut prendre l’index de début et de fin de la tranche et renvoyer le sous-tableau dans cette plage. L’exemple de code suivant nous montre comment définir une fonction d’extension pour découper un tableau 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);
}
}
}
}
Production:
three four five
Nous avons créé une méthode d’extension, Slice()
, qui prend l’index de début et de fin de la tranche et renvoie le sous-tableau découpé. Nous avons initialisé le tableau de chaînes values
et l’avons découpé dans le tableau slice
contenant les valeurs de l’index 2
à l’index 4
du tableau 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