Пример #1
0
        public SkipList <TK, TV> Invert()
        {
            var comparer = _comparer;
            var inverted = new StandardComparer <TK>((a, b) => - comparer.Compare(a, b));
            var newList  = new SkipList <TK, TV>(inverted);

            for (var curr = _head; curr != null; curr = curr.Next[0])
            {
                newList.Add(curr.Key, curr.Value);
            }

            return(newList);
        }
Пример #2
0
        public static EventBean[] Reorder(String[] keys, EventBean[] events)
        {
            var result = new EventBean[events.Length];

            Array.Copy(events, 0, result, 0, result.Length);

            var mkcomparator = new MultiKeyComparator(new bool[keys.Length]);
            var comparer     = new StandardComparer <EventBean>(
                (o1, o2) =>
            {
                MultiKeyUntyped mk1 = GetMultiKey(o1, keys);
                MultiKeyUntyped mk2 = GetMultiKey(o2, keys);
                return(mkcomparator.Compare(mk1, mk2));
            });

            Array.Sort(result, comparer);
            return(result);
        }