Dire que j'ai deux listes:Pouvez-vous combiner plusieurs listes avec LINQ?
var list1 = new int[] {1, 2, 3};
var list2 = new string[] {"a", "b", "c"};
Est-il possible d'écrire une déclaration LINQ qui va générer la liste suivante:
var result = new []{
new {i = 1, s = "a"},
new {i = 1, s = "b"},
new {i = 1, s = "c"},
new {i = 2, s = "a"},
new {i = 2, s = "b"},
new {i = 2, s = "c"},
new {i = 3, s = "a"},
new {i = 3, s = "b"},
new {i = 3, s = "c"}
};
? Edit: J'ai oublié de mentionner que je ne le voulais pas dans la syntaxe de requête. Quoi qu'il en soit, en fonction de la réponse de preetsangha j'ai les suivantes:
var result = list1.SelectMany(i => list2.Select(s => new {i = i, s = s}));
Qu'est-ce qui ne va pas avec la syntaxe de la requête? –
Oui, bizarre que vous choisissiez la réponse de Jon comme réponse quand preetsangha est entré en premier et avait une autre version du même code (avec le respect dû à Jon). –
Si je pouvais choisir les deux je le ferais. Quant à ne pas aimer la syntaxe de la requête, je ne l'aime pas. Il se sent mal car il ne rentre pas dans C# et tous les nouveaux éléments de LINQ ne sont pas disponibles dans la syntaxe de requête, comme ToList() etc. –