compareByName<T extends Enum> 静态方法

  1. @Since("2.15")
int compareByName<T extends Enum>(
  1. T value1,
  2. T value2
)

按名称比较枚举值。

枚举值的 EnumName.name 是一个表示用于声明该枚举值的源名称的字符串。

Comparator 通过比较名称来比较两个枚举值,可以用于按名称排序枚举值。比较使用 String.compareTo,因此是区分大小写的。

示例

enum Season { spring, summer, autumn, winter }

void main() {
  var seasons = [...Season.values]..sort(Enum.compareByName);
  print(seasons);
  // [Season.autumn, Season.spring, Season.summer, Season.winter]
}

实现

@Since("2.15")
static int compareByName<T extends Enum>(T value1, T value2) =>
    value1.name.compareTo(value2.name);