Я думаю, что вы ищете это:
list1.sort_by(&:to_s)
Итак, это приведет к:
[50, 2, 99, 1, 958, 9, 6, 80].sort_by(&:to_s)
#=> [1, 2, 50, 6, 80, 9, 958, 99]
[50, 2, 1, 9].sort_by(&:to_s)
#=> [1, 2, 50, 9]
Если вы хотите обратный порядок, вы можете сделать:
[50, 2, 99, 1, 958, 9, 6, 80].sort_by(&:to_s).reverse
#=> [99, 958, 9, 80, 6, 50, 2, 1]
[50, 2, 1, 9].sort_by(&:to_s).reverse
#=> [9, 50, 2, 1]
И вы можете сделать. join
, чтобы получить объединенную строку:
[50, 2, 1, 9].sort_by(&:to_s).reverse.join
#=> "95021"