enum Topic { none, computing, general } extension TopicString on String { Topic get topic { switch (this) { case 'computing': return Topic.computing; case 'general': return Topic.general; case 'none': return Topic.none; } } } extension TopicExtension on Topic { String get string { switch (this) { case Topic.computing: return 'computing'; case Topic.general: return 'general'; case Topic.none: return 'none'; } } }As of dart 2.15 You can use "Enum.name" e.g ``` enum MyEnum { one, two, three } void main() { print(MyEnum.one.name); // Prints "one". } ```EnumName myEnum = <EnumName>.values.firstWhere((e) => describeEnum(e) == str);Fruit f = Fruit.values.firstWhere((e) => e.toString() == 'Fruit.' + str);