Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJb Evain <jbevain@gmail.com>2010-05-25 12:56:37 +0400
committerJb Evain <jbevain@gmail.com>2010-05-25 12:56:37 +0400
commit54ec00ea9dcd03aa463da9ca24f545cfe0ecd9b6 (patch)
treed1bad79737a1694a4f2c9b0e920d298944059413 /mcs/class/System.Core/System.Linq/Enumerable.cs
parentcbb9e9025ff3c8321725dd56db7399e27d236831 (diff)
2010-05-25 Jb Evain <jbevain@novell.com>
backport of r157831. * Enumerable.cs: make Reverse lazier. Based on a patch by Matthew Flaschen <matthew.flaschen@gatech.edu>. Fixes #608195. svn path=/branches/mono-2-6/mcs/; revision=157832
Diffstat (limited to 'mcs/class/System.Core/System.Linq/Enumerable.cs')
-rw-r--r--mcs/class/System.Core/System.Linq/Enumerable.cs14
1 files changed, 7 insertions, 7 deletions
diff --git a/mcs/class/System.Core/System.Linq/Enumerable.cs b/mcs/class/System.Core/System.Linq/Enumerable.cs
index 15b52670b08..c476de7bd01 100644
--- a/mcs/class/System.Core/System.Linq/Enumerable.cs
+++ b/mcs/class/System.Core/System.Linq/Enumerable.cs
@@ -1575,17 +1575,17 @@ namespace System.Linq
{
Check.Source (source);
+ return CreateReverseIterator (source);
+ }
+
+ static IEnumerable<TSource> CreateReverseIterator<TSource> (IEnumerable<TSource> source)
+ {
var list = source as IList<TSource>;
if (list == null)
list = new List<TSource> (source);
- return CreateReverseIterator (list);
- }
-
- static IEnumerable<TSource> CreateReverseIterator<TSource> (IList<TSource> source)
- {
- for (int i = source.Count; i > 0; --i)
- yield return source [i - 1];
+ for (int i = list.Count - 1; i >= 0; i--)
+ yield return list [i];
}
#endregion