J'ai un Tuple2
De List[List[String]]
Et j'aimerais pouvoir convertir le tuple vers une liste afin que je puisse utiliser List.transpose()
. Y a-t-il un moyen de faire ça? En outre, je sais que c'est un Pair
, même si je suis toujours un fan de solutions génériques.
Fonctionne avec n'importe quel tuple (Scala 2.8):
myTuple.productIterator.toList
Scala 2.7:
(0 to (myTuple.productArity-1)).map(myTuple.productElement(_)).toList
Je ne sais pas comment gérer les informations de type pour un produit général ou un tuple, mais pour Tuple2:
def Tuple2ToList[T](t: (T,T)): List[T] = List(t._1, t._2)
Bien sûr, vous pourriez définir des conversions similaires de sécurité pour tous les tuples (jusqu'à 22).
En utilisant trop bien -
@ import syntax.std.Tuple._
import syntax.std.Tuple._
@ (1,2,3).toList
res21: List[Int] = List(1, 2, 3)
@ (1,2,3,4,3,3,3,3,3,3,3).toList
res22: List[Int] = List(1, 2, 3, 4, 3, 3, 3, 3, 3, 3, 3)
Notez que les informations de type ne sont pas perdues à l'aide de toList
.