using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Test
{
public static void Main()
{
var data = new int[] { 4, 1, 1, 3, 3, 2, 5, 3, 2, 2 };
var result = data.Select ((item, index) =>
new
{
Key = item,
Count = (index == 0 || data.ElementAt(index - 1) != item)
? data.Skip(index).TakeWhile (d => d == item).Count ()
: -1
}
)
.Where (d => d.Count != -1);
foreach(var item in result)
{
Console.WriteLine(string.Format("{0} => {1}", item.Key, item.Count));
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0OwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJICAgIHZhciBkYXRhID0gbmV3IGludFtdIHsgNCwgMSwgMSwgMywgMywgMiwgNSwgMywgMiwgMiB9OwoJICAgIHZhciByZXN1bHQgPSBkYXRhLlNlbGVjdCAoKGl0ZW0sIGluZGV4KSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ID0gaXRlbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3VudCA9IChpbmRleCA9PSAwIHx8IGRhdGEuRWxlbWVudEF0KGluZGV4IC0gMSkgIT0gaXRlbSkgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZGF0YS5Ta2lwKGluZGV4KS5UYWtlV2hpbGUgKGQgPT4gZCA9PSBpdGVtKS5Db3VudCAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIC5XaGVyZSAoZCA9PiBkLkNvdW50ICE9IC0xKTsKCgkgICAgZm9yZWFjaCh2YXIgaXRlbSBpbiByZXN1bHQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdHJpbmcuRm9ybWF0KCJ7MH0gPT4gezF9IiwgaXRlbS5LZXksIGl0ZW0uQ291bnQpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KfQ==