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); }
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); }