在Dart中将字符串转换为枚举值

4

假设我有一个枚举:

enum XYZ { addition, updation, remove}

我有一个结果字符串,使用fromJson方法获取,该方法返回添加、更新或删除操作。

我该如何编写一个函数,使这些值转换为枚举值。类似于XYZ.json['result'],它应该返回XYZ.additionXYZ.updation等等。

非常感谢您的帮助。

1个回答

10

你可以这样做

String yourString = 'addition';
XYZ? result = XYZ.values.firstWhereOrNull((e) => e.name == yourString);

请注意,如果字符串不匹配任何内容,则result可能为null。例如,您可以编写代码以回退到XYZ.addition
XYZ result = XYZ.values.firstWhereOrNull((e) => e.name == yourString) ?? XYZ.addition;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接