J'ai besoin d'une solution qui fonctionne comme une énumération mais avec la possibilité d'ajouter et d'enlever des éléments. Nous avons une solution de base qui devrait offrir des valeurs par défaut, ce qui est courant pour tous les projets, mais tous les projets (qui étendent la base) devraient également pouvoir ajouter et supprimer les leurs.Alternative à enum C#
Exemple:
produit de base:
public static class Constants
{
public enum Food
{
Carrot,
Meat,
Cheese
}
}
extension du projet:
public static class ProjectConstants
{
// Remove meat from Food
// Add Fish to Food
}
Donc maintenant je considérais juste en utilisant une liste:
public static List<string> Food = new List<string>(new string[]
{
"Carrot",
"Meat",
"Cheese",
});
Ce serait permettre moi d'ajouter et de supprimer des éléments dans les projets. Cependant, une liste de chaînes se sent plus vunerable en raison d'erreurs sensibles à la casse et l'orthographe, et de plus, je manque alors la possibilité d'utiliser:
if (Meat < Carrot)
Y at-il une bonne solution? D'une certaine manière à combiner la façon forte et robuste d'enum, avec la façon générique d'ajouter et de supprimer des éléments?
Quel est le résultat de 'Meat
EpicKip
L'utilisation de «viande Carotte'? –
DavidG
Et que se passe-t-il avec du code qui utilise 'Food.Meat' après avoir retiré cette valeur de la collection? –