>>492
個人の感想です、だけどあんまり綺麗じゃないよねそれ。

重要なのは何を使うか使わないかじゃなくて
読みやすいかじゃないかな。
LIN}Qを乱用云々と書いたのはそれは一般に読みづらいから

自分ならこの辺で手を打つかな。知らんけど
効率無視ならUniquelizeなんてメソッドはいらない

int[] hoge = { 1, 5, 8, 3, 6, 1, 2, 5, 4, 1, 1, 4, 8, 1 };
var uhoge = Uniquelize(hoge);
var histogram = uhoge.Zip(uhoge.Select(x => hoge.Count(y => x == y)), (x, y) => new { Item = x, Count = y });
var max = histogram.Aggregate((candidate, next) => next.Count > candidate.Count ? next : candidate);
....

static IEnumerable<T> Uniquelize<T>(IEnumerable<T> source) where T:IEquatable<T>
{
  var list = new List<T>();
  foreach (var item in source)
    if (!list.Contains(item)) list.Add(item);
  return list;
}