繁体   English   中英

在 Kotlin 的数组中找到一个 class 项目

[英]find a class item in array in Kotlin

我有 arraylist class 想找到里面的人

 val personlist : ArrayList<Person>
 
 personlist.add("Max","Mustermann","24")
 
 val searchingfield = searchEt.text.toString()
 
 val foundNames = personlist.filter { it.startsWith(searchingfield)}

找smth smilar对此。

当我单击搜索按钮时,我想在数组列表中找到他的名字、姓氏或年龄的人

因此,当您对personList进行过滤时,lambda 中的it指的是personList中的任何单个元素 - 所以它的类型是Person

除非您定义了一个,否则Person不会开始使用startsWith 您可能需要查看这些字段。 例如,如果它有 surname 并且您只想通过相等性进行比较,您可以执行以下操作:

val foundNames = personlist.filter {
    it.surname == searchingfield
}

您还可以将 lambda 参数重命名为更清晰的名称:

val foundNames = personlist.filter { person ->
    person.surname == searchingfield
}

lambda 的内容由您决定,只要知道itPerson而不是String

你可以试试这个

val foundNames = personlist.filter {
it.name == searchingfield || it.surname == searchingfield || it.age == searchingfield }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM