using System.Collections.Generic;
public static void Main()
StringBuilder pageSets = new StringBuilder();
List<int> lstControlSheets = new List<int>()
{1, 2, 5, 7, 8, 9, 11, 14, 15, 16, 17, 19, 21, 23, 25, 27, 29};
int firstPage = 0, lastPage = 0, counter = 0;
bool isFirstItemInSequence = true;
for (int i = 0; i < lstControlSheets.Count; i++)
if (isFirstItemInSequence)
firstPage = lstControlSheets[i];
isFirstItemInSequence = false;
if ((i + 1) < lstControlSheets.Count)
lastPage = lstControlSheets[i + 1];
if (lastPage - lstControlSheets[i] != 1)
isFirstItemInSequence = true;
if (counter == 1 && false)
pageSets.Append(String.Format("{0},", firstPage));
pageSets.Append(String.Format("[{0}-{1}],", firstPage, lstControlSheets[i]));
Console.Write(pageSets.ToString().Trim(new char[]{','}));