GQ08 X: encore des ensembles

En voici un un peu plus dur. J'ai un ensemble de villes 'cities' et une liste de groupes de villes. J'aimerai afficher l'ensemble du contenu de 'cities' mais en faisant apparaître les groupes à la place des villes si ceux-ci y sont présents. Les villes isolées apparaissent seules.

 var cities = new string[] { "Paris", "Londres", "Berlin", "Madrid", "Bruxelles", "New York", "Seattle", "Tokyo" };

var groups = CreateList(
    new { Id = "Europe", Cities = new string[] { "Paris", "Londres", "Berlin", "Madrid", "Bruxelles" } },
    new { Id = "US", Cities = new string[] { "New York", "Seattle" } }
);

var result = new List<string>();

?

foreach (var s in result)
    Console.WriteLine(s);

Le code de CreateList est ici: https://blogs.msdn.com/mitsufu/archive/2008/08/26/gq08-viii-initialisation-de-collections.aspx

image

Bien évidemment si on enlève "Madrid" de 'cities' l'ensemble 'Europe' disparaît et les villes sont affichées seules.

image

Personnellement je n'ai pas résolu la question en une seule requête Linq.

A vous de jouer.