using System.Collections.Generic;
namespace StackOverflowTest
public static void Main(string[] args)
var registry = new Dictionary<string, Test>();
public int SequenceNum { get; set; }
static void Delete(Dictionary<string, Test> registry, int val)
Console.WriteLine("Deleting: " + val);
registry.Remove(val.ToString());
static void AddNext(Dictionary<string, Test> registry)
var next = GetNextSequenceNo(registry);
Console.WriteLine("Next seq num. is " + next);
registry[next.ToString()] = new Test { SequenceNum = next };
static int GetNextSequenceNo(Dictionary<string, Test> registry)
var vals = registry.Values.OrderBy(s => s.SequenceNum).ToList();
var firstGap = vals.TakeWhile((s, idx) => s.SequenceNum == idx + 1).Count();
return vals[firstGap - 1].SequenceNum + 1;