如何将 IndexOf 与数据类的对象数组一起使用?

问题描述 投票:0回答:1
fun main() {
    data class seriesData( 
        var seriesName: String = "",
        var bookListEntries: MutableList<Int> = arrayListOf() {}
    var mySeriesData: MutableList<seriesData> = ArrayList()
    for (i in 0..5) {
        var myString: String = "series" + i.toString() 
        mySeriesData.add(seriesData(seriesName = myString, 
                                    bookListEntries = ArrayList()))
    }
    // I want to find an occurrence of one of the strings
    println(mySeriesData.seriesName.indexOf("series2")) 
    // The last statement always gives me unresolved reference on seriesName
}

我已经尝试了上述的几种变体,包括使用虚拟键将两个变量放在数据类的主体中并使用“它”。没有成功。我是科特林的新手。我知道上面的一些代码可以精简,但我把它拆开来帮助理清步骤。

kotlin indexof data-class listof
1个回答
0
投票

此函数索引为您提供整个数据类,而不是数据类下的单个值

例如

如果你有以下数据类

data class seriesData(
    var seriesName: String = "",
    var bookListEntries: MutableList<Int> = arrayListOf(),
)

你在这个数据类上运行循环来填充数据类下的变量值

val mySeriesData: MutableList<seriesData> = ArrayList()

for (i in 0 .. 5) {
    var myString: String = "series" + i.toString()
    mySeriesData.add(
        seriesData(
            seriesName = myString,
            bookListEntries = ArrayList()
        )
    )
}

现在您想知道哪个是

"series2"
值的索引

然后你需要一个完整的数据类

在 indexOf 函数中,您需要像这样传递整个数据类:

mySeriesData.indexOf(seriesData("series3", ArrayList()))
  • 将上一行保存到一个变量中,它给出了该数据的索引 该特定值的类别。
© www.soinside.com 2019 - 2024. All rights reserved.