Bon, je sais pas si c'est parce qu'il est tard mais j'avoue ne plus avoir d'idées sur pourquoi ce code fonctionne bien (normal jusque là):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public IEnumerable<int> MethodWithIEnumerable()
        {
            foreach (int i in list)
            {
                yield return i;
            }
        }
Alors que celui-ci ne fonctionne pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public List<int> MethodWithList()
        {
            foreach (int i in list)
            {
                yield return i;
            }
        }

Je reçois le message d'erreur suivant:

Error 1 The body of 'TestYield.Program.MethodWithList()' cannot be an iterator block because 'System.Collections.Generic.List<int>' is not an iterator interface type

Alors que pourtant, List<T> implémente bien IEnumerable et IEnumerable<T>...



Une idée