scripts
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace System.Linq
|
||||
{
|
||||
// Token: 0x02000045 RID: 69
|
||||
internal class QueryableEnumerable<TElement> : IEnumerable, IOrderedQueryable, IQueryProvider, IQueryable, IQueryableEnumerable, IEnumerable<TElement>, IQueryableEnumerable<TElement>, IQueryable<TElement>, IOrderedQueryable<TElement>
|
||||
{
|
||||
// Token: 0x06000423 RID: 1059 RVA: 0x00013D5C File Offset: 0x00011F5C
|
||||
public QueryableEnumerable(IEnumerable<TElement> enumerable)
|
||||
{
|
||||
this.expression = Expression.Constant(this);
|
||||
this.enumerable = enumerable;
|
||||
}
|
||||
|
||||
// Token: 0x06000424 RID: 1060 RVA: 0x00013D78 File Offset: 0x00011F78
|
||||
public QueryableEnumerable(Expression expression)
|
||||
{
|
||||
this.expression = expression;
|
||||
}
|
||||
|
||||
// Token: 0x06000425 RID: 1061 RVA: 0x00013D88 File Offset: 0x00011F88
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return this.GetEnumerator();
|
||||
}
|
||||
|
||||
// Token: 0x17000043 RID: 67
|
||||
// (get) Token: 0x06000426 RID: 1062 RVA: 0x00013D90 File Offset: 0x00011F90
|
||||
public Type ElementType
|
||||
{
|
||||
get
|
||||
{
|
||||
return typeof(TElement);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000044 RID: 68
|
||||
// (get) Token: 0x06000427 RID: 1063 RVA: 0x00013D9C File Offset: 0x00011F9C
|
||||
public Expression Expression
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.expression;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000045 RID: 69
|
||||
// (get) Token: 0x06000428 RID: 1064 RVA: 0x00013DA4 File Offset: 0x00011FA4
|
||||
public IQueryProvider Provider
|
||||
{
|
||||
get
|
||||
{
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000429 RID: 1065 RVA: 0x00013DA8 File Offset: 0x00011FA8
|
||||
public IEnumerable GetEnumerable()
|
||||
{
|
||||
return this.enumerable;
|
||||
}
|
||||
|
||||
// Token: 0x0600042A RID: 1066 RVA: 0x00013DB0 File Offset: 0x00011FB0
|
||||
public IEnumerator<TElement> GetEnumerator()
|
||||
{
|
||||
return this.Execute<IEnumerable<TElement>>(this.expression).GetEnumerator();
|
||||
}
|
||||
|
||||
// Token: 0x0600042B RID: 1067 RVA: 0x00013DC4 File Offset: 0x00011FC4
|
||||
public IQueryable CreateQuery(Expression expression)
|
||||
{
|
||||
return (IQueryable)Activator.CreateInstance(typeof(QueryableEnumerable<>).MakeGenericType(new Type[] { expression.Type.GetFirstGenericArgument() }), new object[] { expression });
|
||||
}
|
||||
|
||||
// Token: 0x0600042C RID: 1068 RVA: 0x00013E08 File Offset: 0x00012008
|
||||
public object Execute(Expression expression)
|
||||
{
|
||||
LambdaExpression lambdaExpression = Expression.Lambda(QueryableEnumerable<TElement>.TransformQueryable(expression), new ParameterExpression[0]);
|
||||
return lambdaExpression.Compile().DynamicInvoke(new object[0]);
|
||||
}
|
||||
|
||||
// Token: 0x0600042D RID: 1069 RVA: 0x00013E38 File Offset: 0x00012038
|
||||
private static Expression TransformQueryable(Expression expression)
|
||||
{
|
||||
return new QueryableTransformer().Transform(expression);
|
||||
}
|
||||
|
||||
// Token: 0x0600042E RID: 1070 RVA: 0x00013E48 File Offset: 0x00012048
|
||||
public IQueryable<TElem> CreateQuery<TElem>(Expression expression)
|
||||
{
|
||||
return new QueryableEnumerable<TElem>(expression);
|
||||
}
|
||||
|
||||
// Token: 0x0600042F RID: 1071 RVA: 0x00013E50 File Offset: 0x00012050
|
||||
public TResult Execute<TResult>(Expression expression)
|
||||
{
|
||||
Expression<Func<TResult>> expression2 = Expression.Lambda<Func<TResult>>(QueryableEnumerable<TElement>.TransformQueryable(expression), new ParameterExpression[0]);
|
||||
return expression2.Compile()();
|
||||
}
|
||||
|
||||
// Token: 0x040000F0 RID: 240
|
||||
private Expression expression;
|
||||
|
||||
// Token: 0x040000F1 RID: 241
|
||||
private IEnumerable<TElement> enumerable;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user