Author: marek
Date: 2007-01-19 14:11:07 -0500 (Fri, 19 Jan 2007)
New Revision: 71356
Added:
trunk/olive/class/System.Core/System.Linq.Expressions/
trunk/olive/class/System.Core/System.Linq/
Removed:
trunk/olive/class/System.Core/System.Expressions/
trunk/olive/class/System.Core/System.Query.dll.sources
trunk/olive/class/System.Core/System.Query/
Modified:
trunk/olive/class/System.Core/Assembly/AssemblyInfo.cs
trunk/olive/class/System.Core/System.Core.dll.sources
trunk/olive/class/System.Core/System.Linq.Expressions/Expression.cs
trunk/olive/class/System.Core/System.Linq.Expressions/ParameterExpression.cs
trunk/olive/class/System.Core/System.Linq/Funcs.cs
trunk/olive/class/System.Core/System.Linq/Grouping.cs
trunk/olive/class/System.Core/System.Linq/IGrouping.cs
trunk/olive/class/System.Core/System.Linq/IOrderedQueryable.cs
trunk/olive/class/System.Core/System.Linq/IOrderedQueryable_T.cs
trunk/olive/class/System.Core/System.Linq/IQueryable.cs
trunk/olive/class/System.Core/System.Linq/IQueryable_T.cs
trunk/olive/class/System.Core/System.Linq/InternalOrderedSequence.cs
trunk/olive/class/System.Core/System.Linq/Lookup.cs
trunk/olive/class/System.Core/System.Linq/OrderedSequence.cs
trunk/olive/class/System.Core/System.Linq/Sequence.cs
Log:
Renamed to System.Query to System.Linq
Modified: trunk/olive/class/System.Core/Assembly/AssemblyInfo.cs
===================================================================
--- trunk/olive/class/System.Core/Assembly/AssemblyInfo.cs 2007-01-19
18:48:46 UTC (rev 71355)
+++ trunk/olive/class/System.Core/Assembly/AssemblyInfo.cs 2007-01-19
19:11:07 UTC (rev 71356)
@@ -2,8 +2,8 @@
using System.Reflection;
using System.Runtime.CompilerServices;
-[assembly: AssemblyTitle("System.Query")]
-[assembly: AssemblyDescription("System.Query.dll")]
+[assembly: AssemblyTitle("System.Core.dll")]
+[assembly: AssemblyDescription("System.Core.dll")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Mono Development Team")]
[assembly: AssemblyProduct("System.Query")]
Modified: trunk/olive/class/System.Core/System.Core.dll.sources
===================================================================
--- trunk/olive/class/System.Core/System.Core.dll.sources 2007-01-19
18:48:46 UTC (rev 71355)
+++ trunk/olive/class/System.Core/System.Core.dll.sources 2007-01-19
19:11:07 UTC (rev 71356)
@@ -1,15 +1,15 @@
-./Assembly/AssemblyInfo.cs
-./System.Runtime.CompilerServices/ExtensionAttribute.cs
-./System.Query/Funcs.cs
-./System.Query/Grouping.cs
-./System.Query/IGrouping.cs
-./System.Query/InternalOrderedSequence.cs
-./System.Query/IOrderedQueryable.cs
-./System.Query/IOrderedQueryable_T.cs
-./System.Query/IQueryable.cs
-./System.Query/IQueryable_T.cs
-./System.Query/Lookup.cs
-./System.Query/OrderedSequence.cs
-./System.Query/Sequence.cs
-System.Expressions/Expression.cs
-System.Expressions/ParameterExpression.cs
\ No newline at end of file
+Assembly/AssemblyInfo.cs
+System.Runtime.CompilerServices/ExtensionAttribute.cs
+System.Linq/Funcs.cs
+System.Linq/Grouping.cs
+System.Linq/IGrouping.cs
+System.Linq/InternalOrderedSequence.cs
+System.Linq/IOrderedQueryable.cs
+System.Linq/IOrderedQueryable_T.cs
+System.Linq/IQueryable.cs
+System.Linq/IQueryable_T.cs
+System.Linq/Lookup.cs
+System.Linq/OrderedSequence.cs
+System.Linq/Sequence.cs
+System.Linq.Expressions/Expression.cs
+System.Linq.Expressions/ParameterExpression.cs
\ No newline at end of file
Copied: trunk/olive/class/System.Core/System.Linq (from rev 71354,
trunk/olive/class/System.Core/System.Query)
Modified: trunk/olive/class/System.Core/System.Linq/Funcs.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/Funcs.cs 2007-01-19 18:44:03 UTC
(rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/Funcs.cs 2007-01-19 19:11:07 UTC
(rev 71356)
@@ -22,7 +22,7 @@
using System;
-namespace System.Query
+namespace System.Linq
{
public delegate T Func<T> ();
public delegate T Func<A0, T> (A0 arg0);
Modified: trunk/olive/class/System.Core/System.Linq/Grouping.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/Grouping.cs 2007-01-19
18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/Grouping.cs 2007-01-19
19:11:07 UTC (rev 71356)
@@ -20,11 +20,11 @@
// Alejandro Serrano "Serras" ([EMAIL PROTECTED])
//
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
public class Grouping<K, T> : IGrouping<K, T>
{
@@ -42,14 +42,14 @@
set { key = value; }
}
- public IEnumerator<T> GetEnumerator ()
- {
- return group.GetEnumerator ();
- }
-
- IEnumerator IEnumerable.GetEnumerator ()
- {
- return group.GetEnumerator ();
+ public IEnumerator<T> GetEnumerator ()
+ {
+ return group.GetEnumerator ();
}
+
+ IEnumerator IEnumerable.GetEnumerator ()
+ {
+ return group.GetEnumerator ();
+ }
}
}
Modified: trunk/olive/class/System.Core/System.Linq/IGrouping.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/IGrouping.cs 2007-01-19
18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/IGrouping.cs 2007-01-19
19:11:07 UTC (rev 71356)
@@ -23,7 +23,7 @@
using System;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
public interface IGrouping<K, T> : IEnumerable<T>
{
Modified: trunk/olive/class/System.Core/System.Linq/IOrderedQueryable.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/IOrderedQueryable.cs
2007-01-19 18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/IOrderedQueryable.cs
2007-01-19 19:11:07 UTC (rev 71356)
@@ -23,7 +23,7 @@
using System;
using System.Collections;
-namespace System.Query
+namespace System.Linq
{
public interface IOrderedQueryable : IEnumerable //, IQueryable
{
Modified: trunk/olive/class/System.Core/System.Linq/IOrderedQueryable_T.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/IOrderedQueryable_T.cs
2007-01-19 18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/IOrderedQueryable_T.cs
2007-01-19 19:11:07 UTC (rev 71356)
@@ -23,7 +23,7 @@
using System;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
public interface IOrderedQueryable<T> : IOrderedQueryable,
IEnumerable<T> //, IQueryable<T>
{
Modified: trunk/olive/class/System.Core/System.Linq/IQueryable.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/IQueryable.cs 2007-01-19
18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/IQueryable.cs 2007-01-19
19:11:07 UTC (rev 71356)
@@ -24,7 +24,7 @@
using System.Collections.Generic;
// using System.Expressions;
-namespace System.Query
+namespace System.Linq
{
/*public interface IQueryable : IEnumerable
{
Modified: trunk/olive/class/System.Core/System.Linq/IQueryable_T.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/IQueryable_T.cs 2007-01-19
18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/IQueryable_T.cs 2007-01-19
19:11:07 UTC (rev 71356)
@@ -24,7 +24,7 @@
using System.Collections.Generic;
// using System.Expressions;
-namespace System.Query
+namespace System.Linq
{
/*public interface IQueryable<T> : IQueryable, IEnumerable<T>
{
Modified: trunk/olive/class/System.Core/System.Linq/InternalOrderedSequence.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/InternalOrderedSequence.cs
2007-01-19 18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/InternalOrderedSequence.cs
2007-01-19 19:11:07 UTC (rev 71356)
@@ -23,7 +23,7 @@
using System;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
internal class InternalOrderedSequence<T, K> : OrderedSequence<T>
{
@@ -63,10 +63,10 @@
private IEnumerable<T> PerformSort (IEnumerable<T> items)
{
// It first enumerates source, collecting all elements
- source_list = new List<T> (items);
-
- // If the source contains just zero or one element,
there's no need to sort
- if (source_list.Count <= 1)
+ source_list = new List<T> (items);
+
+ // If the source contains just zero or one element,
there's no need to sort
+ if (source_list.Count <= 1)
return source_list;
// Then evaluate the keySelector function for each
element,
Modified: trunk/olive/class/System.Core/System.Linq/Lookup.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/Lookup.cs 2007-01-19
18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/Lookup.cs 2007-01-19 19:11:07 UTC
(rev 71356)
@@ -20,11 +20,11 @@
// Alejandro Serrano "Serras" ([EMAIL PROTECTED])
//
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
public class Lookup<K, T> : IEnumerable<IGrouping<K, T>>
{
@@ -32,33 +32,33 @@
internal Lookup (Dictionary<K, List<T>> groups)
{
- this.groups = new Dictionary<K, IGrouping<K, T>> ();
- foreach (KeyValuePair<K, List<T>> group in groups)
+ this.groups = new Dictionary<K, IGrouping<K, T>> ();
+ foreach (KeyValuePair<K, List<T>> group in groups)
this.groups.Add (group.Key, new Grouping<K,
T>(group.Key, group.Value));
}
public int Count {
get { return groups.Count; }
- }
-
- public bool Contains (K key)
- {
- return groups.ContainsKey (key);
}
+ public bool Contains (K key)
+ {
+ return groups.ContainsKey (key);
+ }
+
public IEnumerable<T> this [K key]
{
get { return groups[key]; }
}
- public IEnumerator<IGrouping<K, T>> GetEnumerator ()
- {
- return groups.Values.GetEnumerator ();
- }
-
- IEnumerator IEnumerable.GetEnumerator ()
- {
- return groups.Values.GetEnumerator ();
+ public IEnumerator<IGrouping<K, T>> GetEnumerator ()
+ {
+ return groups.Values.GetEnumerator ();
}
+
+ IEnumerator IEnumerable.GetEnumerator ()
+ {
+ return groups.Values.GetEnumerator ();
+ }
}
}
Modified: trunk/olive/class/System.Core/System.Linq/OrderedSequence.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/OrderedSequence.cs
2007-01-19 18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/OrderedSequence.cs
2007-01-19 19:11:07 UTC (rev 71356)
@@ -24,7 +24,7 @@
using System.Collections;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
public abstract class OrderedSequence<T> : IEnumerable<T>
{
Modified: trunk/olive/class/System.Core/System.Linq/Sequence.cs
===================================================================
--- trunk/olive/class/System.Core/System.Query/Sequence.cs 2007-01-19
18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq/Sequence.cs 2007-01-19
19:11:07 UTC (rev 71356)
@@ -20,10 +20,10 @@
// Alejandro Serrano "Serras" ([EMAIL PROTECTED])
//
-using System;
+using System;
using System.Collections.Generic;
-namespace System.Query
+namespace System.Linq
{
[System.Runtime.CompilerServices.Extension]
public static class Sequence
@@ -63,8 +63,8 @@
return counter;
}
- #endregion
-
+ #endregion
+
#region LongCount
[System.Runtime.CompilerServices.Extension]
@@ -1518,7 +1518,7 @@
#endregion
#region Fold
-
+
[Obsolete ("Use Aggregate instead")]
[System.Runtime.CompilerServices.Extension]
public static T Fold<T> (
@@ -1527,7 +1527,7 @@
{
return Fold<T> (source, func);
}
-
+
[Obsolete ("Use Aggregate instead")]
[System.Runtime.CompilerServices.Extension]
public static U Fold<T, U> (
@@ -1538,10 +1538,10 @@
return Fold<T, U> (source, seed, func);
}
- #endregion
-
+ #endregion
+
#region Aggregate
-
+
[System.Runtime.CompilerServices.Extension]
public static T Aggregate<T> (
IEnumerable<T> source,
@@ -1565,7 +1565,7 @@
else
return folded;
}
-
+
[System.Runtime.CompilerServices.Extension]
public static U Aggregate<T, U> (
IEnumerable<T> source,
@@ -1582,7 +1582,7 @@
}
#endregion
-
+
#region Concat
[System.Runtime.CompilerServices.Extension]
@@ -1600,7 +1600,7 @@
}
#endregion
-
+
#region ToSequence
[System.Runtime.CompilerServices.Extension]
@@ -1642,25 +1642,25 @@
#endregion
#region ToDictionary
-
+
[System.Runtime.CompilerServices.Extension]
public static Dictionary<K, T> ToDictionary<T, K> (
IEnumerable<T> source,
Func<T, K> keySelector)
{
- return ToDictionary<T, K> (source, keySelector, null);
- }
+ return ToDictionary<T, K> (source, keySelector, null);
+ }
[System.Runtime.CompilerServices.Extension]
public static Dictionary<K, T> ToDictionary<T, K> (
IEnumerable<T> source,
- Func<T, K> keySelector,
+ Func<T, K> keySelector,
IEqualityComparer<K> comparer)
{
if (source == null || keySelector == null)
throw new ArgumentNullException ();
- Dictionary<K, T> dictionary = new Dictionary<K, T>
(comparer ?? EqualityComparer<K>.Default);
+ Dictionary<K, T> dictionary = new Dictionary<K, T>
(comparer ?? EqualityComparer<K>.Default);
foreach (T element in source) {
K key = keySelector (element);
if (key == null)
@@ -1672,27 +1672,27 @@
}
return dictionary;
}
-
+
[System.Runtime.CompilerServices.Extension]
public static Dictionary<K, E> ToDictionary<T, K, E> (
IEnumerable<T> source,
Func<T, K> keySelector,
Func<T, E> elementSelector)
- {
- return ToDictionary<T, K, E> (source, keySelector,
elementSelector, null);
- }
+ {
+ return ToDictionary<T, K, E> (source, keySelector,
elementSelector, null);
+ }
[System.Runtime.CompilerServices.Extension]
public static Dictionary<K, E> ToDictionary<T, K, E> (
IEnumerable<T> source,
Func<T, K> keySelector,
- Func<T, E> elementSelector,
+ Func<T, E> elementSelector,
IEqualityComparer<K> comparer)
{
if (source == null || keySelector == null ||
elementSelector == null)
throw new ArgumentNullException ();
- Dictionary<K, E> dictionary = new Dictionary<K,
E>(comparer ?? EqualityComparer<K>.Default);
+ Dictionary<K, E> dictionary = new Dictionary<K,
E>(comparer ?? EqualityComparer<K>.Default);
foreach (T element in source)
{
K key = keySelector (element);
@@ -1707,27 +1707,27 @@
}
#endregion
-
+
#region ToLookup
-
+
[System.Runtime.CompilerServices.Extension]
public static Lookup<K, T> ToLookup<T, K> (
IEnumerable<T> source,
Func<T, K> keySelector)
{
- return ToLookup<T, K> (source, keySelector, null);
- }
+ return ToLookup<T, K> (source, keySelector, null);
+ }
[System.Runtime.CompilerServices.Extension]
public static Lookup<K, T> ToLookup<T, K> (
IEnumerable<T> source,
- Func<T, K> keySelector,
+ Func<T, K> keySelector,
IEqualityComparer<K> comparer)
{
if (source == null || keySelector == null)
throw new ArgumentNullException ();
- Dictionary<K, List<T>> dictionary = new Dictionary<K,
List<T>> (comparer ?? EqualityComparer<K>.Default);
+ Dictionary<K, List<T>> dictionary = new Dictionary<K,
List<T>> (comparer ?? EqualityComparer<K>.Default);
foreach (T element in source) {
K key = keySelector (element);
if (key == null)
@@ -1738,27 +1738,27 @@
}
return new Lookup<K, T> (dictionary);
}
-
+
[System.Runtime.CompilerServices.Extension]
public static Lookup<K, E> ToLookup<T, K, E> (
IEnumerable<T> source,
Func<T, K> keySelector,
Func<T, E> elementSelector)
- {
- return ToLookup<T, K, E> (source, keySelector,
elementSelector, null);
- }
+ {
+ return ToLookup<T, K, E> (source, keySelector,
elementSelector, null);
+ }
[System.Runtime.CompilerServices.Extension]
public static Lookup<K, E> ToLookup<T, K, E> (
IEnumerable<T> source,
Func<T, K> keySelector,
- Func<T, E> elementSelector,
+ Func<T, E> elementSelector,
IEqualityComparer<K> comparer)
{
if (source == null || keySelector == null ||
elementSelector == null)
throw new ArgumentNullException ();
- Dictionary<K, List<E>> dictionary = new Dictionary<K,
List<E>>(comparer ?? EqualityComparer<K>.Default);
+ Dictionary<K, List<E>> dictionary = new Dictionary<K,
List<E>>(comparer ?? EqualityComparer<K>.Default);
foreach (T element in source)
{
K key = keySelector (element);
@@ -1771,7 +1771,7 @@
return new Lookup<K, E> (dictionary);
}
- #endregion
+ #endregion
#region OfType
@@ -1787,8 +1787,8 @@
yield return (T)element;
}
- #endregion
-
+ #endregion
+
#region Cast
[System.Runtime.CompilerServices.Extension]
@@ -1803,7 +1803,7 @@
}
#endregion
-
+
#region First
[System.Runtime.CompilerServices.Extension]
@@ -1868,8 +1868,8 @@
return default (T);
}
- #endregion
-
+ #endregion
+
#region Last
[System.Runtime.CompilerServices.Extension]
@@ -1878,17 +1878,17 @@
{
if (source == null)
throw new ArgumentNullException ();
-
- bool noElements = true;
+
+ bool noElements = true;
T lastElement = default (T);
- foreach (T element in source)
- {
+ foreach (T element in source)
+ {
if (noElements) noElements = false;
- lastElement = element;
+ lastElement = element;
}
-
- if (!noElements)
- return lastElement;
+
+ if (!noElements)
+ return lastElement;
else
throw new InvalidOperationException();
}
@@ -1900,19 +1900,19 @@
{
if (source == null || predicate == null)
throw new ArgumentNullException ();
-
- bool noElements = true;
+
+ bool noElements = true;
T lastElement = default (T);
foreach (T element in source) {
- if (predicate (element))
- {
+ if (predicate (element))
+ {
if (noElements) noElements = false;
- lastElement = element;
+ lastElement = element;
}
}
-
- if (!noElements)
- return lastElement;
+
+ if (!noElements)
+ return lastElement;
else
throw new InvalidOperationException ();
}
@@ -1927,7 +1927,7 @@
{
if (source == null)
throw new ArgumentNullException ();
-
+
T lastElement = default (T);
foreach (T element in source)
lastElement = element;
@@ -1942,7 +1942,7 @@
{
if (source == null || predicate == null)
throw new ArgumentNullException ();
-
+
T lastElement = default (T);
foreach (T element in source) {
if (predicate (element))
@@ -1952,8 +1952,8 @@
return lastElement;
}
- #endregion
-
+ #endregion
+
#region Single
[System.Runtime.CompilerServices.Extension]
@@ -1962,18 +1962,18 @@
{
if (source == null)
throw new ArgumentNullException ();
-
- bool otherElement = false;
+
+ bool otherElement = false;
T singleElement = default (T);
- foreach (T element in source)
- {
- if (otherElement) throw new
InvalidOperationException ();
+ foreach (T element in source)
+ {
+ if (otherElement) throw new
InvalidOperationException ();
if (!otherElement) otherElement = true;
- singleElement = element;
+ singleElement = element;
}
-
- if (otherElement)
- return singleElement;
+
+ if (otherElement)
+ return singleElement;
else
throw new InvalidOperationException();
}
@@ -1985,20 +1985,20 @@
{
if (source == null || predicate == null)
throw new ArgumentNullException ();
-
- bool otherElement = false;
+
+ bool otherElement = false;
T singleElement = default (T);
foreach (T element in source) {
- if (predicate (element))
- {
- if (otherElement) throw new
InvalidOperationException ();
+ if (predicate (element))
+ {
+ if (otherElement) throw new
InvalidOperationException ();
if (!otherElement) otherElement = true;
- singleElement = element;
+ singleElement = element;
}
}
-
- if (otherElement)
- return singleElement;
+
+ if (otherElement)
+ return singleElement;
else
throw new InvalidOperationException ();
}
@@ -2013,14 +2013,14 @@
{
if (source == null)
throw new ArgumentNullException ();
-
- bool otherElement = false;
+
+ bool otherElement = false;
T singleElement = default (T);
- foreach (T element in source)
- {
- if (otherElement) throw new
InvalidOperationException ();
+ foreach (T element in source)
+ {
+ if (otherElement) throw new
InvalidOperationException ();
if (!otherElement) otherElement = true;
- singleElement = element;
+ singleElement = element;
}
return singleElement;
@@ -2033,15 +2033,15 @@
{
if (source == null || predicate == null)
throw new ArgumentNullException ();
-
- bool otherElement = false;
+
+ bool otherElement = false;
T singleElement = default (T);
foreach (T element in source) {
- if (predicate (element))
- {
- if (otherElement) throw new
InvalidOperationException ();
+ if (predicate (element))
+ {
+ if (otherElement) throw new
InvalidOperationException ();
if (!otherElement) otherElement = true;
- singleElement = element;
+ singleElement = element;
}
}
@@ -2075,8 +2075,8 @@
}
}
- #endregion
-
+ #endregion
+
#region ElementAtOrDefault
[System.Runtime.CompilerServices.Extension]
@@ -2089,12 +2089,12 @@
if (index < 0)
return default(T);
- if (source is IList<T>)
- {
- if (((IList<T>)source).Count >= index)
- return default(T);
+ if (source is IList<T>)
+ {
+ if (((IList<T>)source).Count >= index)
+ return default(T);
else
- return ((IList<T>)source)[index];
+ return ((IList<T>)source)[index];
}
else {
int counter = 0;
@@ -2107,8 +2107,8 @@
}
}
- #endregion
-
+ #endregion
+
#region DefaultIfEmpty
[System.Runtime.CompilerServices.Extension]
@@ -2117,39 +2117,39 @@
{
if (source == null)
throw new ArgumentNullException ();
-
- bool noYield = true;
- foreach (T item in source)
- {
- noYield = false;
- yield return item;
- }
-
- if (noYield)
+
+ bool noYield = true;
+ foreach (T item in source)
+ {
+ noYield = false;
+ yield return item;
+ }
+
+ if (noYield)
yield return default (T);
- }
-
+ }
+
[System.Runtime.CompilerServices.Extension]
public static IEnumerable<T> DefaultIfEmpty<T> (
- IEnumerable<T> source,
+ IEnumerable<T> source,
T defaultValue)
{
if (source == null)
throw new ArgumentNullException ();
-
- bool noYield = true;
- foreach (T item in source)
- {
- noYield = false;
- yield return item;
- }
-
- if (noYield)
+
+ bool noYield = true;
+ foreach (T item in source)
+ {
+ noYield = false;
+ yield return item;
+ }
+
+ if (noYield)
yield return defaultValue;
}
#endregion
-
+
#region EqualAll
[System.Runtime.CompilerServices.Extension]
@@ -2175,7 +2175,7 @@
}
#endregion
-
+
#region Range
[System.Runtime.CompilerServices.Extension]
@@ -2205,7 +2205,7 @@
}
#endregion
-
+
#region Empty
[System.Runtime.CompilerServices.Extension]
@@ -2214,8 +2214,8 @@
return new List<T> ();
}
- #endregion
-
+ #endregion
+
/** A NOTE ON IMPLEMENTATION REGARDING NULL KEYS
*
* GroupBy specification states that null-key values
@@ -2241,7 +2241,7 @@
private static List<T> ContainsGroup<K, T>(
Dictionary<K, List<T>> items, K key,
IEqualityComparer<K> comparer)
- {
+ {
IEqualityComparer<K> comparerInUse = (comparer ??
EqualityComparer<K>.Default);
foreach (KeyValuePair<K, List<T>> value in items) {
if (comparerInUse.Equals(value.Key, key))
@@ -2364,7 +2364,7 @@
}
#endregion
-
+
#region OrderBy
[System.Runtime.CompilerServices.Extension]
@@ -2480,7 +2480,7 @@
}
#endregion
-
+
#region Take
[System.Runtime.CompilerServices.Extension]
@@ -2582,16 +2582,16 @@
{
if (source == null || predicate == null)
throw new ArgumentNullException ();
-
+
bool yield = false;
-
- foreach (T element in source) {
+
+ foreach (T element in source) {
if (yield)
yield return element;
else
- if (!predicate (element)) {
+ if (!predicate (element)) {
yield return element;
- yield = true;
+ yield = true;
}
}
}
@@ -2607,20 +2607,20 @@
int counter = 0;
bool yield = false;
- foreach (T element in source) {
+ foreach (T element in source) {
if (yield)
yield return element;
else
- if (!predicate (element, counter)) {
+ if (!predicate (element, counter)) {
yield return element;
- yield = true;
+ yield = true;
}
counter++;
}
}
#endregion
-
+
#region Select
[System.Runtime.CompilerServices.Extension]
@@ -2684,7 +2684,7 @@
}
#endregion
-
+
#region Any
[System.Runtime.CompilerServices.Extension]
@@ -2731,8 +2731,8 @@
return true;
}
- #endregion
-
+ #endregion
+
#region Contains
[System.Runtime.CompilerServices.Extension]
@@ -2753,7 +2753,7 @@
}
#endregion
-
+
#region Where
[System.Runtime.CompilerServices.Extension]
@@ -2786,7 +2786,7 @@
}
#endregion
-
+
#region Distinct
[System.Runtime.CompilerServices.Extension]
@@ -2884,79 +2884,79 @@
yield return item;
}
- #endregion
-
- # region Join
-
- [System.Runtime.CompilerServices.Extension]
- public static IEnumerable<V> Join<T, U, K, V> (
- IEnumerable<T> outer,
- IEnumerable<U> inner,
- Func<T, K> outerKeySelector,
- Func<U, K> innerKeySelector,
- Func<T, U, V> resultSelector)
- {
- if (outer == null || inner == null || outerKeySelector
== null ||
- innerKeySelector == null || resultSelector ==
null)
- throw new ArgumentNullException ();
-
- Lookup<K, U> innerKeys = ToLookup<U, K> (inner,
innerKeySelector);
- /*Dictionary<K, List<U>> innerKeys = new Dictionary<K,
List<U>> ();
- foreach (U element in inner)
- {
- K innerKey = innerKeySelector (element);
- if (!innerKeys.ContainsKey (innerKey))
- innerKeys.Add (innerKey, new List<U>
());
- innerKeys[innerKey].Add (element);
- }*/
-
- foreach (T element in outer)
- {
- K outerKey = outerKeySelector (element);
- if (innerKeys.Contains (outerKey))
- {
- foreach (U innerElement in innerKeys
[outerKey])
- yield return resultSelector
(element, innerElement);
- }
- }
- }
-
- # endregion
-
- # region GroupJoin
-
- [System.Runtime.CompilerServices.Extension]
- public static IEnumerable<V> GroupJoin<T, U, K, V> (
- IEnumerable<T> outer,
- IEnumerable<U> inner,
- Func<T, K> outerKeySelector,
- Func<U, K> innerKeySelector,
- Func<T, IEnumerable<U>, V> resultSelector)
- {
- if (outer == null || inner == null || outerKeySelector
== null ||
- innerKeySelector == null || resultSelector ==
null)
- throw new ArgumentNullException ();
-
- Lookup<K, U> innerKeys = ToLookup<U, K> (inner,
innerKeySelector);
- /*Dictionary<K, List<U>> innerKeys = new Dictionary<K,
List<U>> ();
- foreach (U element in inner)
- {
- K innerKey = innerKeySelector (element);
- if (!innerKeys.ContainsKey (innerKey))
- innerKeys.Add (innerKey, new List<U>
());
- innerKeys[innerKey].Add (element);
- }*/
-
- foreach (T element in outer)
- {
- K outerKey = outerKeySelector (element);
- if (innerKeys.Contains (outerKey))
- yield return resultSelector (element,
innerKeys [outerKey]);
- }
- }
-
+ #endregion
+
+ # region Join
+
+ [System.Runtime.CompilerServices.Extension]
+ public static IEnumerable<V> Join<T, U, K, V> (
+ IEnumerable<T> outer,
+ IEnumerable<U> inner,
+ Func<T, K> outerKeySelector,
+ Func<U, K> innerKeySelector,
+ Func<T, U, V> resultSelector)
+ {
+ if (outer == null || inner == null || outerKeySelector
== null ||
+ innerKeySelector == null || resultSelector ==
null)
+ throw new ArgumentNullException ();
+
+ Lookup<K, U> innerKeys = ToLookup<U, K> (inner,
innerKeySelector);
+ /*Dictionary<K, List<U>> innerKeys = new Dictionary<K,
List<U>> ();
+ foreach (U element in inner)
+ {
+ K innerKey = innerKeySelector (element);
+ if (!innerKeys.ContainsKey (innerKey))
+ innerKeys.Add (innerKey, new List<U>
());
+ innerKeys[innerKey].Add (element);
+ }*/
+
+ foreach (T element in outer)
+ {
+ K outerKey = outerKeySelector (element);
+ if (innerKeys.Contains (outerKey))
+ {
+ foreach (U innerElement in innerKeys
[outerKey])
+ yield return resultSelector
(element, innerElement);
+ }
+ }
+ }
+
# endregion
-
+
+ # region GroupJoin
+
+ [System.Runtime.CompilerServices.Extension]
+ public static IEnumerable<V> GroupJoin<T, U, K, V> (
+ IEnumerable<T> outer,
+ IEnumerable<U> inner,
+ Func<T, K> outerKeySelector,
+ Func<U, K> innerKeySelector,
+ Func<T, IEnumerable<U>, V> resultSelector)
+ {
+ if (outer == null || inner == null || outerKeySelector
== null ||
+ innerKeySelector == null || resultSelector ==
null)
+ throw new ArgumentNullException ();
+
+ Lookup<K, U> innerKeys = ToLookup<U, K> (inner,
innerKeySelector);
+ /*Dictionary<K, List<U>> innerKeys = new Dictionary<K,
List<U>> ();
+ foreach (U element in inner)
+ {
+ K innerKey = innerKeySelector (element);
+ if (!innerKeys.ContainsKey (innerKey))
+ innerKeys.Add (innerKey, new List<U>
());
+ innerKeys[innerKey].Add (element);
+ }*/
+
+ foreach (T element in outer)
+ {
+ K outerKey = outerKeySelector (element);
+ if (innerKeys.Contains (outerKey))
+ yield return resultSelector (element,
innerKeys [outerKey]);
+ }
+ }
+
+ # endregion
+
// These methods are not included in the
// .NET Standard Query Operators Specification,
// but they provide additional useful commands
Copied: trunk/olive/class/System.Core/System.Linq.Expressions (from rev 71354,
trunk/olive/class/System.Core/System.Expressions)
Modified: trunk/olive/class/System.Core/System.Linq.Expressions/Expression.cs
===================================================================
--- trunk/olive/class/System.Core/System.Expressions/Expression.cs
2007-01-19 18:44:03 UTC (rev 71354)
+++ trunk/olive/class/System.Core/System.Linq.Expressions/Expression.cs
2007-01-19 19:11:07 UTC (rev 71356)
@@ -23,7 +23,7 @@
using System;
using System.Collections.Generic;
-namespace System.Expressions
+namespace System.Linq.Expressions
{
public abstract class Expression
{
Modified:
trunk/olive/class/System.Core/System.Linq.Expressions/ParameterExpression.cs
===================================================================
--- trunk/olive/class/System.Core/System.Expressions/ParameterExpression.cs
2007-01-19 18:44:03 UTC (rev 71354)
+++
trunk/olive/class/System.Core/System.Linq.Expressions/ParameterExpression.cs
2007-01-19 19:11:07 UTC (rev 71356)
@@ -23,7 +23,7 @@
using System;
using System.Collections.Generic;
-namespace System.Expressions
+namespace System.Linq.Expressions
{
public class ParameterExpression
{
Deleted: trunk/olive/class/System.Core/System.Query.dll.sources
===================================================================
--- trunk/olive/class/System.Core/System.Query.dll.sources 2007-01-19
18:48:46 UTC (rev 71355)
+++ trunk/olive/class/System.Core/System.Query.dll.sources 2007-01-19
19:11:07 UTC (rev 71356)
@@ -1,15 +0,0 @@
-./Assembly/AssemblyInfo.cs
-./System.Runtime.CompilerServices/ExtensionAttribute.cs
-./System.Query/Funcs.cs
-./System.Query/Grouping.cs
-./System.Query/IGrouping.cs
-./System.Query/InternalOrderedSequence.cs
-./System.Query/IOrderedQueryable.cs
-./System.Query/IOrderedQueryable_T.cs
-./System.Query/IQueryable.cs
-./System.Query/IQueryable_T.cs
-./System.Query/Lookup.cs
-./System.Query/OrderedSequence.cs
-./System.Query/Sequence.cs
-System.Expressions/Expression.cs
-System.Expressions/ParameterExpression.cs
\ No newline at end of file
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches