Это не массив (список), а хэш (словарь). Следовательно, порядок ключей не гарантируется. Даже если в некоторых реализациях порядок соблюдается, это не показатель.
Так что, если порядок критичен, придется сортировать.
алгоритм не смотрел, но уже чисто по коду:
1. int[,] mas — если нужна скорость, то юзайте [][] или ещё лучше просто плоский массив
2. public int n{get;set;} — auto property — зло