You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.9 KiB
76 lines
1.9 KiB
#if NET20 || NET30 || NET35 || !NET_4_6 |
|
|
|
using System.Collections; |
|
using System.Collections.Generic; |
|
//using System.Linq.Expressions; |
|
using System.Linq.Expressions.Reimplement; |
|
|
|
namespace System.Linq.Reimplement |
|
{ |
|
public class EnumerableQuery<T> : EnumerableQuery, IOrderedQueryable<T>, IQueryProvider |
|
{ |
|
private readonly QueryableEnumerable<T> _queryable; |
|
|
|
public EnumerableQuery(Expression expression) |
|
{ |
|
_queryable = new QueryableEnumerable<T>(expression); |
|
} |
|
|
|
public EnumerableQuery(IEnumerable<T> enumerable) |
|
{ |
|
_queryable = new QueryableEnumerable<T>(enumerable); |
|
} |
|
|
|
Type IQueryable.ElementType |
|
{ |
|
get { return _queryable.ElementType; } |
|
} |
|
|
|
Expression IQueryable.Expression |
|
{ |
|
get { return _queryable.Expression; } |
|
} |
|
|
|
IQueryProvider IQueryable.Provider |
|
{ |
|
get { return _queryable; } |
|
} |
|
|
|
IEnumerator IEnumerable.GetEnumerator() |
|
{ |
|
return _queryable.GetEnumerator(); |
|
} |
|
|
|
IEnumerator<T> IEnumerable<T>.GetEnumerator() |
|
{ |
|
return _queryable.GetEnumerator(); |
|
} |
|
|
|
IQueryable IQueryProvider.CreateQuery(Expression expression) |
|
{ |
|
return _queryable.CreateQuery(expression); |
|
} |
|
|
|
IQueryable<TElem> IQueryProvider.CreateQuery<TElem>(Expression expression) |
|
{ |
|
return new EnumerableQuery<TElem>(expression); |
|
} |
|
|
|
object IQueryProvider.Execute(Expression expression) |
|
{ |
|
return _queryable.Execute(expression); |
|
} |
|
|
|
TResult IQueryProvider.Execute<TResult>(Expression expression) |
|
{ |
|
return _queryable.Execute<TResult>(expression); |
|
} |
|
|
|
public override string ToString() |
|
{ |
|
return _queryable.ToString(); |
|
} |
|
} |
|
} |
|
|
|
#endif |