相关疑难解决方法(0)

在Kotlin中按多个字段对集合进行排序

假设我有一个人员列表,我需要按年龄排序,然后按姓名排序.

来自C#-background,我可以使用LINQ轻松实现所述语言:

var list=new List<Person>();
list.Add(new Person(25, "Tom"));
list.Add(new Person(25, "Dave"));
list.Add(new Person(20, "Kate"));
list.Add(new Person(20, "Alice"));

//will produce: Alice, Kate, Dave, Tom
var sortedList=list.OrderBy(person => person.Age).ThenBy(person => person.Name).ToList(); 
Run Code Online (Sandbox Code Playgroud)

如何使用Kotlin实现这一目标?

这是我尝试过的(显然是错误的,因为第一个"sortedBy"子句的输出被第二个被覆盖,导致列表仅按名称排序)

val sortedList = ArrayList(list.sortedBy { it.age }.sortedBy { it.name })) //wrong
Run Code Online (Sandbox Code Playgroud)

kotlin

187
推荐指数
2
解决办法
7万
查看次数

如何基于/比较Kotlin中的多个值进行排序?

假设我有一个class Foo(val a: String, val b: Int, val c: Date),我想Foo根据所有三个属性对s 列表进行排序.我该怎么做?

comparable kotlin

68
推荐指数
1
解决办法
2万
查看次数

标签 统计

kotlin ×2

comparable ×1