Example using Linq.
using System;
using System.Collections.Generic;
using System.Linq;
private static List<List<string>> Split(IList<string> source)
{
if (source == null || source.Count == 0)
{
return null;
}
else
{
return source
.Select(x => x)
.GroupBy(x => x)
.Select(x => x.ToList())
.ToList();
}
}
static void Main(string[] args)
{
List<string> array = new List<string>();
array.Add("Pre-aa");
array.Add("Post-aa");
array.Add("Normal-aa");
array.Add("Post-aa");
array.Add("Normal-aa");
array.Add("Normal-aa");
array.Add("Post-aa");
array.Add("Pre-aa");
array.Add("Post-aa");
array.Add("Pre-aa");
array.Add("Post-aa");
array.Add("Post-aa");
array.Add("Normal-aa");
array.Add("Normal-aa");
var result = Split(array);
}