gpt4 book ai didi

arrays - kotlin “contains”无法正常工作

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

我正在使用一种过滤与id匹配的首选项的方法,但是我使用contains方法,但是即使值相同,但contains在每次迭代中都会显示一个false。该方法如下所示:

private fun filterPreferencesByIds(context: MyPodCastPresenterContext): List<FanPreferences> {
return context.preferences?.filter {
context.ids.contains(it.id)
}
}

数组的值为:

对于 context.ids:
“B52594F5-80A4-4B18-B5E2-8F7B12E92958”和“3998EDE7-F84B-4F02-8E15-65F535080100”

enter image description here

对于 context.preferences:

enter image description here

但是,即使当第一个和最后一个ID与 context.ids具有相同的ID值时,在调试中contains还是false。我认为这可能与 context.idsJson$JsonTextNode中的类型有关。因为当我对数字值进行硬编码时,比较成功。

有任何想法吗?

谢谢!

最佳答案

如果FanPreferences.id的类型为String,并且context.ids列表元素的类型为JsonTextNode,则找不到与给定id字符串相等的元素,因为它不是String类型。

尝试在过滤之前将上下文ID映射到字符串列表:

val ids = context.ids.map { it.toString() }.toSet()
return context.preferences?.filter {
ids.contains(it.id)
}

请注意,在 toString()上调用 JsonTextNode可能不是从其获取字符串数据的最佳方法。最好查阅该类的API文档以进行查找。

关于arrays - kotlin “contains”无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55660863/

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