根据字符串列表过滤 case class 对象列表

Filter a list of case class objects based on a list of strings

我有一个案例 class 作为这个 User(id:String, name: String, address: String, password: String) 和另一个案例 class 作为 Account(userId: String, accountId : String, 角色: Set[String]).我需要根据我在 Scala 中作为 List[String] 拥有的 userId 列表过滤帐户对象列表(List[Account])。我一直在为此苦苦挣扎,并尝试这样做但做不到。关于我应该如何做的任何指示都会非常有帮助。 谢谢!

我不确定我是否正确理解了你的问题,但如果你只是想只保留 Account,而 userId 是你拥有的单独集合的一部分,你可以这样做:

val accounts: List[Account] = ???
val idsToKeep: Set[String] = ???
accounts.filter(a => idsToKeep.contains(a.userId))

郑重声明,如果您经常使用 contains 方法,最好使用 Set[String] 而不是 List[String] 来存储要保留的 ID。