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.

// Première liste.
List<string> listePrenoms = new List<string>() { "James", "Laurence", "Baptiste", "Mathieu", "Damien" };

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

// Agrégation dans une chaîne de caractères.
List<string> 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<Tuple<string, int>> listePrenomsAvecAges1 = listePrenoms.Zip(listeAges, (prenom, age) => Tuple.Create(prenom, age)).ToList();
listePrenomsAvecAges1.ForEach(o => Console.WriteLine(o));

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é.