a.Aggregate((int.MinValue,0), (cur,next) => cur.Item1 < next ? (next, 1) : (cur.Item1 == next ? (next, cur.Item2 + 1) : cur));

これじゃダメなの?