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

标签 c# visual-studio visual-studio-2008 resharper

有人知道在代码编辑器中对枚举项进行排序的方法吗,例如使用 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
}

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

另一个例子:

  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
    }

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

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

谢谢

最佳答案

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

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

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

关于c# - 在编辑器中对枚举项进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038543/

相关文章:

c# - 实现 MS Access 样式 'relationships' GUI

c++ - 为什么我的 visual studio .obj 文件比输出的 .exe 文件大?

c# - MemoryStream 读/写和数据长度

python - 如何在Azure上运行Python3项目?

c# - 为什么 R# 会警告我有关 CSHTML 中注释掉的行?

asp.net-mvc - ASP.NET MVC 从新 View 模型下拉菜单中排除命名空间

asp.net - Visual Studio 2005 : Is there an easy way to indent correctly in an ASPX file?

c# - 在 .NET Framework 2.0 中使用扩展方法

c# - 大型 LINQ 分组查询,幕后发生了什么

c# - 如何检查 Texture2D 是否透明?