Langage C# – Agréger facilement des jeux de données

Vous obtenez deux ensembles de données. Par exemple, un premier à partir de données stockées dans une base de données et un autre en consommant un service Web. Vous souhaitez les fusionner.

Dans les exemples que je vous propose ci-dessous, voici comment fusionner des jeux de données (une liste de noms et d’âges), en utilisant la méthode d’extension Zip proposée par Microsoft (méthode étendant l’interface générique IEnumerable<T>).

Le premier exemple permet d’obtenir une liste de chaîne de caractères (en utilisant l’interpolation de chaînes de caractères). Le second permet d’obtenir une grappe d’objets créés à partir de tuples.

[cc lang= »csharp »]
// Première liste.
List listePrenoms = new List() { « James », « Laurence », « Baptiste », « Mathieu », « Damien » };

// Seconde liste.
List listeAges = new List() { 38, 42, 15, 13, 8 };

// Agrégation dans une chaîne de caractères.
List listePrenomsAvecAges = listePrenoms.Zip(listeAges, (prenom, age) => $ »{prenom} – {age} »).ToList();
listePrenomsAvecAges.ForEach(o => Console.WriteLine(o));

// Ihm.
Console.WriteLine();

// Agréation dans une grappe d’objets (tuples).
List> listePrenomsAvecAges1 = listePrenoms.Zip(listeAges, (prenom, age) => Tuple.Create(prenom, age)).ToList();
listePrenomsAvecAges1.ForEach(o => Console.WriteLine(o));
[/cc]

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j'alterne les missions de formation et d'ingénierie avec cette plateforme. J'écris ce blog pour transmettre mes connaissances à tout développeur, qu'il soit débutant ou expérimenté.