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
5 years ago
|
#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
|