var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
PrintList(list);
bool delete = false;
while (list.Count > 1)
{
for (int i = 0; i < list.Count; i++)
{
if (delete) list.RemoveAt(i--);
delete = !delete;
}
PrintList(list);
}
Console.Read();
static void PrintList(IEnumerable<int> list)
{
foreach (var item in list)
Console.Write("{0} ", item);
Console.WriteLine();
}