|
これでどうでしょうか?
static void Main(string[] args)
{
var dic = new Dictionary<int, string>();
for(int i = 1; i < 3000000; i++)
{
dic.Add(i, "hoge");
}
dic.Remove(10);
dic.Remove(100);
dic.Remove(1000);
dic.Remove(10000);
dic.Remove(100000);
dic.Remove(1000000);
// 事前に key がソートされていることが条件です
var ret = dic.Where(d => !dic.ContainsKey(d.Key + 1)).ToDictionary(d => d.Key, d => d.Value);
ret.Remove(ret.Last().Key);
Console.WriteLine(ret.Keys.Select(k => k.ToString())
.Aggregate((r, v) => r + "," + v));
// 9,99,999,9999,99999,999999
Console.Read();
}
|