如何distinctBy在自定义对象列表中使用以删除重复项?我想通过对象的多个属性来确定"唯一性",但不是全部.
我希望这样的东西可行,但没有运气:
val uniqueObjects = myObjectList.distinctBy { it.myField, it.myOtherField }
编辑:我很好奇如何使用distinctBy任意数量的属性,而不仅仅是像我上面的例子中的两个.
在Kotlin中有没有办法在过滤的数字列表sum()上进行操作,而不是先实际过滤出元素?
我正在寻找这样的东西:
val nums = listOf<Long>(-2, -1, 1, 2, 3, 4)
val sum = nums.sum(it > 0)
Run Code Online (Sandbox Code Playgroud) 我有一个函数,它接受Array<String?>:
fun doStuff(words: Array<String?>) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以传递Array<String>给这个函数?原样编译器给我一个"类型不匹配"错误.
private val SOME_WORDS = arrayOf("I", "want", "to", "use", "these")
doStuff(SOME_WORDS) // throws a type-mismatch error
Run Code Online (Sandbox Code Playgroud)
我希望尽可能避免做出SOME_WORDS一个arrayOf<String?>(...).
假设我有一个List<Tuple>,其中每个元素的第一个元素是一个字符串。Kotlin中是否有扩展功能来从每个元组中选择第一个元素?
我在寻找类似C#LINQ语法的内容Select:
myTuples.Select(t => t.item1)
Run Code Online (Sandbox Code Playgroud) 我正在尝试从stdin中读取两行未知数目的空格分隔的整数。我想将每行整数存储到自己的整数切片中。
例如,我的输入可能如下所示:
1 2 3
4 5 6
Run Code Online (Sandbox Code Playgroud)
我想读成两个[]int:
[1,2,3]
[4,5,6]
Run Code Online (Sandbox Code Playgroud)
到目前为止,这就是我所拥有的。scanner.Scan()给了我电话,但是我不确定如何将其转换为[]int:
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
var firstLine []int
var secondLine []int
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
t := scanner.Text()
}
}
Run Code Online (Sandbox Code Playgroud) 我环顾四周寻找一个类似的问题(我确定在某个地方有一个)但找不到一个问题.
我有一个ID列表,对于每个ID,我需要将该ID行的另一列更新为相同的字符串.
基本上,我想要这样的东西:
List<int> uniqueIDs;
UPDATE my_table
SET certainColumn = "foo bar"
WHERE uniqueID = uniqueIDs[0]
OR uniqueID = uniqueIDs[1]
...
OR uniqueID = uniqueID[uniqueIDs.Length-1]
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过在for/foreach循环中包含它来实现,但我想知道是否有更好的方法来完成这个,可能在一个数据库连接中?
任何帮助是极大的赞赏.