/// <summary> /// Constructs an OrderKeeper with its necessary initial element (empty OrderKeepers aren't possible). /// </summary> /// <param name="initial">The first element to place in the ordering</param> public OrderKeeper(T initial) : base() { Add((First = new Record <T>(this, default, 0UL)));
public Record(OrderKeeper <T> keeper, T item, ulong label, Record <T> previous, Record <T> next) { Keeper = keeper; Item = item; Label = label; Previous = previous ?? keeper.First; Next = next ?? keeper.First; }