#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 : EnumerableQuery, IOrderedQueryable, IQueryProvider { private readonly QueryableEnumerable _queryable; public EnumerableQuery(Expression expression) { _queryable = new QueryableEnumerable(expression); } public EnumerableQuery(IEnumerable enumerable) { _queryable = new QueryableEnumerable(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 IEnumerable.GetEnumerator() { return _queryable.GetEnumerator(); } IQueryable IQueryProvider.CreateQuery(Expression expression) { return _queryable.CreateQuery(expression); } IQueryable IQueryProvider.CreateQuery(Expression expression) { return new EnumerableQuery(expression); } object IQueryProvider.Execute(Expression expression) { return _queryable.Execute(expression); } TResult IQueryProvider.Execute(Expression expression) { return _queryable.Execute(expression); } public override string ToString() { return _queryable.ToString(); } } } #endif