Editer: Opps, a écrit mauvais test pour l'inverse, mes excuses pour mauvaise réponse. Il fait du tampon après la correction du test (en utilisant enumerable retourné par Reverse())
On dirait que la méthode d'extension inverse ne fonctionne que lorsque la collection est remplie. En utilisant le retour de rendement, cela ne fait rien.
Ran en problème en utilisant la pensée inverse, il doit tampon pour que cela fonctionne, a constaté qu'il ne fonctionne pas avec le rendement. Ça va juste le passer et ne rien faire. ci-dessous est mon code de test.
[TestMethod]
public void loopTest()
{
var series = this.GetSeries();
series.Reverse();
foreach (var l in series)
{
Debug.WriteLine(l);
}
}
private IEnumerable<long> GetSeries()
{
var series = new List<long>() { 1, 2, 3, 4 };
foreach (var entry in series)
{
Debug.WriteLine(entry);
yield return entry;
}
}
Inverser ne pas appeler la fonction GetSeries du tout, toutes les discussions de tampon dans ce forum semblent de rien.
Il n'y a aucune IEnumerable. Méthode inverse que j'ai jamais vue (et MSDN semble soutenir ceci)! –
Noldorin
C'est parce que c'est une méthode d'extension: http://msdn.microsoft.com/en-us/library/bb358497.aspx –
@Noldorin: Enumerable.Reverse est une méthode d'extension sur IEunumerable –