I really liked @Arik_E second option build on @Ivo's answer, however I had to replace value.name by value.toString() for it to work. It led to
static ValueType? fromName(String nameSearched) {
for (var value in ValueType.values) {
if (value.toString() == nameSearched) return value;
}
return null;
}
Then it can be transferred to a class so that other Enum could be used, leading to:
class FromStringToEnumConverter<T extends Enum> {
final List<T> enumValues;
FromStringToEnumConverter({required this.enumValues});
T? enumFromString(String searchedValue) {
for (T enumValue in enumValues) {
if (enumValue.toString() == searchedValue) return enumValue;
}
return null;
}
}
Called through :
FromStringToEnumConverter<EnumName>(enumValues: EnumName.values)
.enumFromString(nameSearched);
Hopefully it helps...