Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何有效地检查Kotlin集合中的关键字?_Kotlin - Fatal编程技术网

如何有效地检查Kotlin集合中的关键字?

如何有效地检查Kotlin集合中的关键字?,kotlin,Kotlin,我有多个列表,我检查一些关键字,然后我检查 首先,如果大陆出现并返回位置。欧洲 如果没有,请检查国家/地区并返回Loation.GERMANY 代码: 可替换为: if(listCities.contains("Madrid")) return Location.EUROPE .filter将创建另一个仅包含“Madrid”元素的列表,然后您将检查该列表的大小。这有点多余。但是有一个警告,如果你有一个多单词的名字,比如thehague,并且你搜索Hague,你就再也找不

我有多个列表,我检查一些关键字,然后我检查

  • 首先,如果大陆出现并返回
    位置。欧洲
  • 如果没有,请检查国家/地区并返回
    Loation.GERMANY
代码:

可替换为:

if(listCities.contains("Madrid")) return Location.EUROPE
.filter
将创建另一个仅包含“Madrid”元素的列表,然后您将检查该列表的大小。这有点多余。但是有一个警告,如果你有一个多单词的名字,比如
thehague
,并且你搜索
Hague
,你就再也找不到了。如果你想考虑到这一点,我会这样做:

if(listCities.any {it.contains("Hague", true)}) return Location.EUROPE
这一项将同时匹配海牙
海牙
海牙
海牙市
,等等。注意,结尾处的
是可选的,这意味着它将忽略案例中的差异(
A
将是相同的A
A
),如果不需要,它可以删除

由于添加了
City
对象,您只需执行以下操作:

listCities.any {it.name.contains("Hague", true)}
或者,对于简单版本:

listCities.any {it.name == "Hague"}

抱歉,编辑了示例代码我已相应地编辑了答案。祝你好运。我试着让exmaple尽可能简单。我的问题是列表是列表类型,而城市是上面编辑的。因此,元素属于城市类型,不容易实现,因此仍然很简单,将
listcity.any{it.contains(“Hague”,true)}
替换为
listcity.any{it.name.contains(“Hahue”,true)}
名称更改为实际的属性名称。或者你甚至可以做
listcites.any{it.name==“Hague}
来获得简单的版本。我也编辑了答案。@Joffrey它现在应该在那里了,最后两个带有
it.name
if(listCities.any {it.contains("Hague", true)}) return Location.EUROPE
listCities.any {it.name.contains("Hague", true)}
listCities.any {it.name == "Hague"}