using System.Collections.Generic;
public static void Main()
List<string> inputList= new List<string>();
inputList.Add("[Unfinished] Project task 1");
inputList.Add("Some other Piece of work to do");
inputList.Add("[Continued] [Unfinished] Project task 1");
inputList.Add("Project Task 2");
inputList.Add("Random other work to do");
inputList.Add("Project 4");
inputList.Add("[Continued] [Continued] Project task 1");
inputList.Add("[SPIKE] Investigate the foo");
inputList = inputList.OrderBy(x=> x.Contains("]")? x.Substring(x.LastIndexOf("]")):x).ToList();
Console.WriteLine(String.Join("\n",inputList));