44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
namespace System.Linq
|
|
{
|
|
// Token: 0x02000040 RID: 64
|
|
internal abstract class OrderedEnumerable<TElement> : IEnumerable, IEnumerable<TElement>, IOrderedEnumerable<TElement>
|
|
{
|
|
// Token: 0x0600039B RID: 923 RVA: 0x00010F38 File Offset: 0x0000F138
|
|
protected OrderedEnumerable(IEnumerable<TElement> source)
|
|
{
|
|
this.source = source;
|
|
}
|
|
|
|
// Token: 0x0600039C RID: 924 RVA: 0x00010F48 File Offset: 0x0000F148
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
{
|
|
return this.GetEnumerator();
|
|
}
|
|
|
|
// Token: 0x0600039D RID: 925 RVA: 0x00010F50 File Offset: 0x0000F150
|
|
public IEnumerator<TElement> GetEnumerator()
|
|
{
|
|
return this.Sort(this.source).GetEnumerator();
|
|
}
|
|
|
|
// Token: 0x0600039E RID: 926
|
|
public abstract SortContext<TElement> CreateContext(SortContext<TElement> current);
|
|
|
|
// Token: 0x0600039F RID: 927
|
|
protected abstract IEnumerable<TElement> Sort(IEnumerable<TElement> source);
|
|
|
|
// Token: 0x060003A0 RID: 928 RVA: 0x00010F64 File Offset: 0x0000F164
|
|
public IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(Func<TElement, TKey> selector, IComparer<TKey> comparer, bool descending)
|
|
{
|
|
return new OrderedSequence<TElement, TKey>(this, this.source, selector, comparer, (!descending) ? SortDirection.Ascending : SortDirection.Descending);
|
|
}
|
|
|
|
// Token: 0x040000EB RID: 235
|
|
private IEnumerable<TElement> source;
|
|
}
|
|
}
|