gpt4 book ai didi

kotlin - 将对象的多个字段与对象的ArrayList中的字段进行比较

转载 作者:行者123 更新时间:2023-12-02 13:25:26 24 4
gpt4 key购买 nike

我创建了一个“SiteObject”,其中包括以下字段:

data class SiteObject(

//Site entry fields (10 fields)
var siteReference: String = "",
var siteAddress: String = "",
var sitePhoneNumber: String = "",
var siteEmail: String = "",
var invoiceAddress: String = "",
var invoicePhoneNumber: String = "",
var invoiceEmail: String = "",
var website: String = "",
var companyNumber: String = "",
var vatNumber: String = "",
)
我想通过检查列表中对象的任何字段是否与特定 ArrayList<SiteObject>中的对象匹配(将其称为 currentSite )来过滤 <SiteObject>(将其称为 allSites )。
因此,例如,我知道如何过滤一个字段:
    fun checkIfExistingSite(currentSite: SiteObject) : ArrayList<SiteObject> {
var matchingSites = ArrayList<SiteObject>()
allSites.value?.filter { site ->
site.siteReference.contains(currentSite.siteReference)}?.let { matchingSites.addAll(it)
}
return matchingSites
}
但是,我正在寻找一种创建列表的优雅方法,在该列表中,我将 allSites 中每个对象中的匹配字段与 currentSite 中的相应字段进行比较。
这将为我提供一个站点列表,这些站点可以呈现给用户检查的站点可能相同(允许用户输入数据的方式有所不同)。

最佳答案

使用等于数据类的属性:

val matchingSites: List<SiteObject> = allSites
.filterNotNull()
.filter { it.equals(currentSite) }

关于kotlin - 将对象的多个字段与对象的ArrayList中的字段进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64490060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com