How to sort a list in Scala by two fields?

Twistleton picture Twistleton · Apr 5, 2012 · Viewed 58.1k times · Source

how to sort a list in Scala by two fields, in this example I will sort by lastName and firstName?

case class Row(var firstName: String, var lastName: String, var city: String)

var rows = List(new Row("Oscar", "Wilde", "London"),
                new Row("Otto",  "Swift", "Berlin"),
                new Row("Carl",  "Swift", "Paris"),
                new Row("Hans",  "Swift", "Dublin"),
                new Row("Hugo",  "Swift", "Sligo"))

rows.sortBy(_.lastName)

I try things like this

rows.sortBy(_.lastName + _.firstName)

but it doesn't work. So I be curious for a good and easy solution.

Answer

senia picture senia · Apr 5, 2012
rows.sortBy(r => (r.lastName, r.firstName))