# Sort

**URL:** <https://www.ruby-forum.com/t/sort/154249>\
**Category:** IT\
**Created:** [November 26, 2008, 6:36pm UTC](https://www.ruby-forum.com/t/sort/154249 "2008-11-26T18:36:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![njna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/ac8455/32.png) [@njna](https://www.ruby-forum.com/u/njna)\
**Post date:** [November 26, 2008, 6:36pm UTC](https://www.ruby-forum.com/t/sort/154249/1 "2008-11-26T18:36:46Z")

</div>

ciao a tutti, ho un array “lista” con all’interno degli oggetti “libro”.  
ogni oggetto ha varie caratteristiche tra le quali il prezzo.  
io devo ordinare questo array in base al prezzo in ordine crescente.  
ho pensato di usare sort ma giustamente fare lista.sort genera errori  
perchÃ¨ il sistema non sa come ordinarli.  
devo perciÃ² definire un \<=\> che mi permetta di ordinare questo array.  
cosa devo scrivere all’interno di:

def \<=\>

al fine di ordinare questo array?

grazie a tutti!

---

<div class="post-metadata">

**Author:** ![njna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/ac8455/32.png) [@njna](https://www.ruby-forum.com/u/njna)\
**Post date:** [November 26, 2008, 8:17pm UTC](https://www.ruby-forum.com/t/sort/154249/2 "2008-11-26T20:17:31Z")

</div>

Puoi fare in 2 modi  
ordinare così  
lista.sort {|l1, l2| l1.prezzo \<=\> l2.prezzo}

oppure definire in Libro il metodo \<=\> così

def \<=\> other  
prezzo \<=\> other.prezzo  
end

e richiamare lista.sort per ordinare

ciao

2008/11/26 Njna N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
