using System; using System.Collections; using System.Collections.Generic; namespace System.Linq { // Token: 0x02000040 RID: 64 internal abstract class OrderedEnumerable : IEnumerable, IEnumerable, IOrderedEnumerable { // Token: 0x0600039B RID: 923 RVA: 0x00010F38 File Offset: 0x0000F138 protected OrderedEnumerable(IEnumerable 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 GetEnumerator() { return this.Sort(this.source).GetEnumerator(); } // Token: 0x0600039E RID: 926 public abstract SortContext CreateContext(SortContext current); // Token: 0x0600039F RID: 927 protected abstract IEnumerable Sort(IEnumerable source); // Token: 0x060003A0 RID: 928 RVA: 0x00010F64 File Offset: 0x0000F164 public IOrderedEnumerable CreateOrderedEnumerable(Func selector, IComparer comparer, bool descending) { return new OrderedSequence(this, this.source, selector, comparer, (!descending) ? SortDirection.Ascending : SortDirection.Descending); } // Token: 0x040000EB RID: 235 private IEnumerable source; } }