using System.Collections.Generic;
using System.Threading.Tasks;
using System.Globalization;
using System.Collections;
public static void Main(string[] args)
var list = new List<string> { "[", "1", "2", "3", "]", "[", "2", "2", "]", "[", "3", "]" };
list.Select(item=> new { item=item, index= item=="]"? ++index : index })
.Where(c => !(c.item == "[" || c.item =="]"))
.Select(e=> e.Select(c=>c.item)).Dump();