Files
Dec2017-Script-Dump/System.Core/System/Linq/OrderedSequence.cs
T
2026-06-04 11:42:34 +02:00

55 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
namespace System.Linq
{
// Token: 0x02000041 RID: 65
internal class OrderedSequence<TElement, TKey> : OrderedEnumerable<TElement>
{
// Token: 0x060003A1 RID: 929 RVA: 0x00010F84 File Offset: 0x0000F184
internal OrderedSequence(IEnumerable<TElement> source, Func<TElement, TKey> key_selector, IComparer<TKey> comparer, SortDirection direction)
: base(source)
{
this.selector = key_selector;
this.comparer = comparer ?? Comparer<TKey>.Default;
this.direction = direction;
}
// Token: 0x060003A2 RID: 930 RVA: 0x00010FB0 File Offset: 0x0000F1B0
internal OrderedSequence(OrderedEnumerable<TElement> parent, IEnumerable<TElement> source, Func<TElement, TKey> keySelector, IComparer<TKey> comparer, SortDirection direction)
: this(source, keySelector, comparer, direction)
{
this.parent = parent;
}
// Token: 0x060003A3 RID: 931 RVA: 0x00010FC8 File Offset: 0x0000F1C8
public override SortContext<TElement> CreateContext(SortContext<TElement> current)
{
SortContext<TElement> sortContext = new SortSequenceContext<TElement, TKey>(this.selector, this.comparer, this.direction, current);
if (this.parent != null)
{
return this.parent.CreateContext(sortContext);
}
return sortContext;
}
// Token: 0x060003A4 RID: 932 RVA: 0x00011008 File Offset: 0x0000F208
protected override IEnumerable<TElement> Sort(IEnumerable<TElement> source)
{
return QuickSort<TElement>.Sort(source, this.CreateContext(null));
}
// Token: 0x040000EC RID: 236
private OrderedEnumerable<TElement> parent;
// Token: 0x040000ED RID: 237
private Func<TElement, TKey> selector;
// Token: 0x040000EE RID: 238
private IComparer<TKey> comparer;
// Token: 0x040000EF RID: 239
private SortDirection direction;
}
}