在编辑器中对枚举项进行排序

AFr*_*act 13 c# resharper visual-studio-2008 visual-studio

有人知道在代码编辑器中对枚举项进行排序的方法,例如使用resharper或其他VS加载项(即按字母顺序或按整数值对项目进行排序)?

在一个项目中,我有一些带有未排序标签的巨大枚举,并且对于对它们进行排序的可读性将是有帮助的.

编辑:只是为了指出,因为很多人提到,如果没有明确的值,我完全知道在编译时分配给枚举项的"自动值".

为了更清楚一点,有两个例子:

public enum Colors
{
/// <summary>
/// Yellow color
///</summary>
Yellow, 
/// <summary>
/// Green color
///</summary>
Green, 
/// <summary>
/// Blue color
///</summary>
Blue,
/// <summary>
/// Red color
///</summary>
Red
}
Run Code Online (Sandbox Code Playgroud)

- >我们可能想按字母顺序重新排序.由于没有明确定义,因此不使用允许的整数值.

另一个例子 :

  public enum Colors
    {
    /// <summary>
    /// Yellow color
    ///</summary>
    Yellow = 3, 
    /// <summary>
    /// Green color
    ///</summary>
    Green = 1, 
    /// <summary>
    /// Blue color
    ///</summary>
    Blue = 2,
    /// <summary>
    /// Red color
    ///</summary>
    Red = 4
    }
Run Code Online (Sandbox Code Playgroud)

- >我们可能想按数字值重新排序,或者,为什么不按字母顺序排序.等等.

而且我还希望在每个条目之前保留注释,这意味着我不能简单地使用Excel或文本编辑器来执行字母排序.

谢谢

Pau*_*ane 5

  1. 选择并剪切枚举值。
  2. 将它们粘贴到 Vim 中。
  3. :sort.
  4. 剪切并粘贴回去。

(养成在最后一个枚举值中添加尾随逗号的习惯很有用,即使这不是必需的,因为它使重新排序和添加项目更容易。)

正如@Dean Chalk 指出的那样,除非您使用显式编号,否则重新排序枚举中的项目将影响该项目的基础编号。如果您存储这些数字(例如到数据库),使用它们与外部进程通信或将您的枚举转换为另一个枚举,它只会影响您。


Pau*_*ane 5

为了帮助手动排序,您可以使用 Resharper 功能来移动成员。

Ctrl- Shift- Alt- Up/Down在枚举声明中移动光标处的值。