Jaki jest dobry i działający sposób wykonywania obsady w ten sposób?Wartości krotek seq.cast od obj do string
seq { yield (box "key", box "val") }
|> Seq.cast<string*string>
Ponieważ wygląda bardzo brzydki:
seq { yield (box "key", box "val") }
|> Seq.map (fun (k,v) -> k.ToString(), v.ToString())
Jak również to:
seq { yield (box "key", box "val") }
|> Seq.map (fun (k,v) -> unbox<string>(k), unbox<string>(v))
Czy istnieje sposób, aby "unbox" krotka do innego krotki?
po prostu pomóż w funkcji unBoxString (k, v). I możesz wywołać .ToString() bezpośrednio na pudełku. – s952163
dziękuję za sugestię, ale nie mogę nazwać 'ToString()' na pudełkowej krotce, ponieważ dostałbym jej reprezentację smyczkową. I chcę zamiast tego uzyskać krotkę dwóch strun. – derwasp
Tak, oczywiście. Miałem na myśli to, jak w odpowiedzi Marka, gdzie używana jest funkcja ciągu. Musiałbyś wywołać to na każdym pudełkowym obiekcie, który już zrobiłeś. Myślę, że kiedy czuje się "brzydko", łatwo jest napisać jedną linijkę. Posiadanie wielu funkcji pomocniczych jest idiomatyczne. Odpowiedź jest tego dobrym przykładem. – s952163