Bonjour,
J'ai actuellement ceci qui fonctionne :
Mais je ne comprends pas pourquoi je ne peux pas remplacer mon foreach par un des lignes commentée du dessus. Ça ne compile pas (invalid arguments).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public void func(Division[] divisions) { var currencies = new HashSet<string>(divisions.SelectMany(div => div.Locations).Select(e => e.CcyLoc)); //currencies.UnionWith(new HashSet<string>(divisions.SelectMany(div => div.CurrencyCode))); //ou bien même //currencies.UnionWith(divisions.SelectMany(div => div.CcyDiv)); foreach(CalcDivision div in divisions) { currencies.Add(div.CurrencyCode); } }
Voyez-vous le problème?
D'avance merci,
Julien






Répondre avec citation



), remplace ces SelectMany par des Select et ça devrait aller (il faudra peut-être un ajout de Cast ou OfType pour le CurrencyCode vu qu'il semblerait que tu l'obtiennes de CalcDivision plutôt que Division [et que je suppose que le premier hérite du second]).
(UnionWith fait juste un foreach avec un AddIfNotPresent (une méthode interne à la classe) même méthode appelée depuis Add ; donc tu gagnes juste un passage par Add).

Partager