int[] comparValue = { 11, 22, 11, 11, 33, 11, 22 }; var query = (from num in ( from number in comparValue group number by number into g select new { number = g.Key, cnt = g.Count() } ) orderby num.cnt descending select num.number).First(); Console.WriteLine("{0}", query);