网上演练
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

#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