2017-05-25 1 views
0

J'ai un code ci-dessous qui extrait une liste d'une sous-fonction et la renvoie à une fonction principale. Mon problème est que je ne peux pas concaténer le résultat du sous-élément à l'enumerable déclaré dans mainfunc. Y a-t-il quelque chose qui me manque?Enumerable.Concat ne fonctionne pas dans la liste vide

private void MainFunc() 
{ 
    IEnumerable<CustomClass> keys = Enumerable.Empty<CustomClass>(); 
    foreach (var item in items) 
    { 
     keys.Concat(SubFunc(item)); 
    } 
} 
private IEnumerable<CustomClass> SubFunc (string y) 
{ 
    IEnumerable<CustomClass> list = GetList(y).ToList(); 
    return list; 
} 
+0

Il est bien connu que la plupart des méthodes simplement "ne fonctionne pas", par exemple - [WORK 'String.Replace' n'a pas] (https: // stackoverflow .com/questions/13277667/c-sharp-string-replace-ne-fonctionne-pas). C'est toujours une bonne idée de chercher avant de demander que [Enumerable.Concat ne fonctionne pas] (https://stackoverflow.com/questions/37815989/enumerable-concat-not-working) en général déjà, si clairement que cela ne fonctionnera pas pour tout type spécifique de liste. –

Répondre

2

.Concat() ne mute pas le sujet, mais renvoie une nouvelle IEnumerable<T>.

Vous venez de le jeter.

Fix avec votre code:

keys = keys.Concat(SubFunc(item))