J'ai le code suivant qui remplit un système.Collections.generic.List Je n'aime pas cela, je ne me demandais donc pas s'il y a une meilleure façon de le faire.
4 Réponses :
Avez-vous essayé: liste <'T> code> a un constructeur qui prend un
ienumerable <' t> code> prend heureusement tout
SEQ <'T> code> vous y passe. p> p>
En plus de la réponse de Mehrdad
Je trouve utile de définir des modules d'assistant pour de nombreuses collections standard et des types .NET pour les rendre plus amicaux. Ici, je définirais ici le suivant P>
let getDirectories = Directory.GetDirectories(_baseFolder) let languagesList = getDirectiories |> Seq.map (fun dir -> (new DirectoryInfo(dir)).Name) |> BclListUtil.ofSeq
Notez également que vous pouvez utiliser l'abréviation de type resizarray <_> code> au lieu de
system.collections.generic.list <_> code>.
@KVB, merci, je n'ai pas réalisé qu'il y avait déjà un alias de type présent.
L'alias f # pour Toutefois, pour une raison d'étrange raison, ce module semble inclure system.collections.generic.list <_> code> est
resizarray <_> code> comme KVB noté. Le F # PowerPack comprend un Module resizarray pour travailler avec des listes de BCL dans une mode idiomatique F # similaire à la SEQ et aux modules de liste. P>
Ofarray code> et
delist code> et
toseq code> mais pas
ofq code> . p>
Utilisez resizarray qui équivaut à exemple: p> system.collections.generic.list code>