Match de la chaîne d'énumération?
Je suis aide d'un 3ème partie DLL qui s'attend à une énumération appelé "DaysOfWeek" dans la signature de la méthode.
Je suis permettre à mes utilisateurs de sélectionner le jour de la semaine à partir d'une zone de liste déroulante, mais je me retrouve avec une chaîne.
Comment puis-je répondre à ma chaîne à la appropriée de l'énumération des biens?
Merci!
Qu'avez-vous essayé? Certaines solutions pourraient être plus élégant que d'autres, mais cela semble être un simple problème de la cartographie de l'un à l'autre.
OriginalL'auteur user53885 | 2009-12-22
Vous devez vous connecter pour publier un commentaire.
Remarque: Cette va lancer une exception si la chaîne n'est pas convertible à l'enum. Le dernier paramètre est pour la recherche insensible à la casse.
OriginalL'auteur rui
Vous pouvez utiliser les méthodes suivantes pour convertir une chaîne en un enum:
Vous pouvez également utiliser la casse de surcharge si les utilisateurs peuvent taper dans theor propres valeurs:
Peut-être dans le cas où vous n'êtes pas conduite à partir d'une zone de liste déroulante, mais peut-être à partir d'un paramètre de ligne de commande. J'apprécie ce n'est pas la question spécifique posée, mais l'information a certainement été utile dans mon cas!
OriginalL'auteur LBushkin
En supposant que la zone de liste déroulante contient l'énumération des noms.
OriginalL'auteur João Angelo
Désolé pour les références croisées, mais dans mon anser ici il y a une classe d'assistance appelé
EnumPair<T>
Que vous pouvez utiliser pour remplir la zone de liste déroulante et qui ont valeur de l'enum de retour à l'emploi.
à l'aide de ces trois lignes de remplir la zone de liste déroulante correctement pour vous:
Voici l'original affichage
OriginalL'auteur Oliver Friedrich
Vous pouvez utiliser Enum.Analyser pour convertir la chaîne en réel Enum.
OriginalL'auteur Reed Copsey
Créer une classe qui ressemble à quelque chose comme ceci:
Puis lier votre zone de liste modifiable pour une collection de ces éléments. Ensuite, vous pouvez lancer le SelectedItem dans la liste déroulante pour une instance de cette classe.
OriginalL'auteur BFree
Vous pouvez utiliser la méthode d'analyse sur les Enum type statique.
Alternativement, vous pouvez remplir la liste déroulante liste avec les valeurs de l'enum directement et éviter les problèmes de conversion entièrement.
OriginalL'auteur Jeffrey L Whitledge
Si vous êtes le remplissage de votre zone de liste déroulante à partir de la DaysOfWeek enum:
Alors vous pouvez obtenir la valeur d'énumération de la propriété SelectedItem de la zone de liste déroulante:
OriginalL'auteur Nathen Silver
En dehors de l'autre (corriger et intégrée) suggestions, il est également intéressant de Tiers
Enum<T>
classe qui permet de travailler avec des enums beaucoup plus agréable:http://blog.logrythmik.com/post/Better-Enum-Parsing-using-Strongly-Typed-Generics.aspx
OriginalL'auteur Michael Stum
Vous pouvez lier à une liste de paires nom/valeur, où la valeur est de votre enum.
Un peu plus de travail, mais il sera plus facile pour permettre la localisation en bas de la ligne si jamais vous en avez besoin. Voici un moyen:
Vous pouvez ensuite accéder à la jour de la semaine:
OriginalL'auteur Joe
Voici ce que je préfère. Si l'analyse a obtenu échoué, il a besoin d'être traitées.
OriginalL'auteur Amit Bhagat