using System; using System.Collections.Generic; using System.Linq; using System.Text; public class Test { public static void Main() { var data = new int[] { 1, 1, 2, 1 }; var results = Enumerable.Range(0, data.Count ()) .Where (i => i == 0 || data.ElementAt(i - 1) != data.ElementAt(i)) .Select (i => new { //Key = data.ElementAt(i), Group = Enumerable.Repeat(data.ElementAt(i), data.Skip(i) .TakeWhile (d => d == data.ElementAt(i)).Count ()) } ); foreach(var item in results) { Console.Write("["); foreach(var num in item.Group) Console.Write(string.Format("{0} ", num)); Console.WriteLine("]"); } } }