using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Test
{
public static void Main()
{
var array = new int[] {1,1,1,2,2,2,2,3,3,9,9,16,16};
var query = from x in array
group x by x into g
let count = g.Count()
select new {Value = g.Key, Count = count};
foreach (var x in query)
{
Console.WriteLine("Value: " + x.Value + " Count: " + x.Count);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0OwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgICAgIHZhciBhcnJheSA9IG5ldyBpbnRbXSB7MSwxLDEsMiwyLDIsMiwzLDMsOSw5LDE2LDE2fTsgCgogICAgICAgICAgIHZhciBxdWVyeSA9IGZyb20geCBpbiBhcnJheQogICAgICAgICAgICAgICAgICAgICAgIGdyb3VwIHggYnkgeCBpbnRvIGcKICAgICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSBnLkNvdW50KCkKICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgbmV3IHtWYWx1ZSA9IGcuS2V5LCBDb3VudCA9IGNvdW50fTsKCiAgICAgICAgICAgIGZvcmVhY2ggKHZhciB4IGluIHF1ZXJ5KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiVmFsdWU6ICIgKyB4LlZhbHVlICsgIiBDb3VudDogIiArIHguQ291bnQpOwogICAgICAgICAgICB9Cgl9Cn0=