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>2008-06-24 23:50:15 +0400
committerJb Evain <jbevain@gmail.com>2008-06-24 23:50:15 +0400
commitf1530a7b006af2cf71466849ceefff0fa574923c (patch)
tree1727e431f9107068071ac47e49ec03dc624281ff /mcs/class/System.Core/System.Linq/Enumerable.cs
parentbf8661f78b0b54706ab1d103af92e8e30efaaf2d (diff)
properly create join iterator
svn path=/trunk/mcs/; revision=106529
Diffstat (limited to 'mcs/class/System.Core/System.Linq/Enumerable.cs')
-rw-r--r--mcs/class/System.Core/System.Linq/Enumerable.cs9
1 files changed, 8 insertions, 1 deletions
diff --git a/mcs/class/System.Core/System.Linq/Enumerable.cs b/mcs/class/System.Core/System.Linq/Enumerable.cs
index 660fa6ed05f..457c0a08433 100644
--- a/mcs/class/System.Core/System.Linq/Enumerable.cs
+++ b/mcs/class/System.Core/System.Linq/Enumerable.cs
@@ -838,6 +838,13 @@ namespace System.Linq
if (comparer == null)
comparer = EqualityComparer<TKey>.Default;
+ return CreateJoinIterator (outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer);
+ }
+
+ static IEnumerable<TResult> CreateJoinIterator<TOuter, TInner, TKey, TResult> (this IEnumerable<TOuter> outer,
+ IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector,
+ Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer)
+ {
ILookup<TKey, TInner> innerKeys = ToLookup<TInner, TKey> (inner, innerKeySelector, comparer);
/*Dictionary<K, List<U>> innerKeys = new Dictionary<K, List<U>> ();
foreach (U element in inner)
@@ -861,7 +868,7 @@ namespace System.Linq
IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector,
Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector)
{
- return Join<TOuter, TInner, TKey, TResult> (outer, inner, outerKeySelector, innerKeySelector, resultSelector, null);
+ return outer.Join (inner, outerKeySelector, innerKeySelector, resultSelector, null);
}
#endregion