Browse Source

2007-09-11 Marek Safar <[email protected]>

	* Enumerable.cs: Fixed Join recursion.
	

svn path=/trunk/mcs/; revision=85631
Marek Safar 18 years ago
parent
commit
89843a26c3

+ 4 - 0
mcs/class/System.Core/System.Linq/ChangeLog

@@ -1,3 +1,7 @@
+2007-09-11  Marek Safar <[email protected]>
+
+	* Enumerable.cs: Fixed Join recursion.
+
 2007-08-22  Marek Safar <[email protected]>
 
 	* Enumerable.cs: More SelectionMany.

+ 9 - 9
mcs/class/System.Core/System.Linq/Enumerable.cs

@@ -739,30 +739,30 @@ namespace System.Linq
 
         #region FirstOrDefault
 
-        public static T FirstOrDefault<T>(this IEnumerable<T> source)
+        public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source)
         {
             if (source == null)
                 throw new ArgumentNullException();
 
-            foreach (T element in source)
+            foreach (TSource element in source)
                 return element;
 
-            return default(T);
+            return default(TSource);
         }
 
 
-        public static T FirstOrDefault<T>(this IEnumerable<T> source, Func<T, bool> predicate)
+        public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
         {
             if (source == null || predicate == null)
                 throw new ArgumentNullException();
 
-            foreach (T element in source)
+            foreach (TSource element in source)
             {
                 if (predicate(element))
                     return element;
             }
 
-            return default(T);
+            return default(TSource);
         }
 
         #endregion
@@ -1009,7 +1009,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);
+            return Join<TOuter, TInner, TKey, TResult>(outer, inner, outerKeySelector, innerKeySelector, resultSelector, null);
         }
         # endregion
 
@@ -2830,7 +2830,7 @@ namespace System.Linq
 
         #region IndexOf
 
-        public static int IndexOf<T>(this IEnumerable<T> source, T item, IEqualityComparer<T> comparer)
+        static int IndexOf<T>(this IEnumerable<T> source, T item, IEqualityComparer<T> comparer)
         {
             if (comparer == null)
                 comparer = EqualityComparer<T>.Default;
@@ -2846,7 +2846,7 @@ namespace System.Linq
             return -1;
         }
 
-        public static int IndexOf<T>(this IEnumerable<T> source, T item)
+        static int IndexOf<T>(this IEnumerable<T> source, T item)
         {
             return IndexOf<T>(source, item, null);
         }