79078993

Date: 2024-10-11 16:12:46
Score: 1
Natty:
Report link

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...

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @Arik_E
  • User mentioned (0): @Ivo's
  • Low reputation (1):
Posted by: pjpac