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

问题描述 投票:0回答:1

假设我有一个枚举:

enum XYZ { addition, updation, remove}

我有一个使用

fromJson
方法得到的结果字符串,该方法返回添加、更新或删除

如何编写一个函数,以便将这些值转换为枚举值。像

XYZ.json['result']
这样的东西应该返回给我
XYZ.addition
XYZ.updation
等等

任何帮助将不胜感激。

flutter dart enums model
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;

firstWhereOrNull
collection
包的一部分,因此您需要添加它并导入它,如下所示:

import 'package:collection/collection.dart';
© www.soinside.com 2019 - 2024. All rights reserved.