Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CachingComparer.cs
Go to the documentation of this file.
2
3namespace System.Linq;
4
5internal abstract class CachingComparer<TElement>
6{
7 internal abstract int Compare(TElement element, bool cacheLower);
8
9 internal abstract void SetElement(TElement element);
10}
11internal class CachingComparer<TElement, TKey> : CachingComparer<TElement>
12{
14
15 protected readonly IComparer<TKey> _comparer;
16
17 protected readonly bool _descending;
18
19 protected TKey _lastKey;
20
27
28 internal override int Compare(TElement element, bool cacheLower)
29 {
30 TKey val = _keySelector(element);
32 if (cacheLower == num < 0)
33 {
34 _lastKey = val;
35 }
36 return num;
37 }
38
39 internal override void SetElement(TElement element)
40 {
41 _lastKey = _keySelector(element);
42 }
43}
readonly Func< TElement, TKey > _keySelector
void SetElement(TElement element)
override void SetElement(TElement element)
override int Compare(TElement element, bool cacheLower)
readonly IComparer< TKey > _comparer
CachingComparer(Func< TElement, TKey > keySelector, IComparer< TKey > comparer, bool descending)
int Compare(TElement element, bool cacheLower)