是否存在用于Asc或Desc排序的枚举?

Cus*_*dio 40 .net c#

是否有一个Enum本身在.NET中用于提升或下降排序?

我需要在不同的库中使用排序概念,我希望尽可能松散耦合.

smd*_*ger 42

.NET中有超过8个排序枚举.它表明,即使在微软工程师将重新发明轮子.同样有趣的是评论实践和代码风格各不相同.

以下是我发现的:

  1. System.ComponentModel.ListSortDirection

    public enum ListSortDirection {
        /// <devdoc>
        ///    <para>Sort in ascending order.</para>
        /// </devdoc>
        Ascending,
        /// <devdoc>
        ///    <para>Sort in descending order.</para>
        /// </devdoc>
        Descending 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. System.Data.SqlClient.SortOrder

    public enum SortOrder {
        Unspecified     = -1,
        Ascending       = 0,
        Descending      = 1
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. System.Data.Linq.SqlClient.SqlOrderType

    internal enum SqlOrderType {
        Ascending,
        Descending
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. System.DirectoryServices.SortDirection

    public enum SortDirection
    {
        //
        // Summary:
        //     Sort from smallest to largest. For example, A to Z.
        Ascending,
        //
        // Summary:
        //     Sort from largest to smallest. For example, Z to A.
        Descending
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. System.Windows.Forms.SortOrder

    /// <include file='doc\SortOrder.uex' path='docs/doc[@for="SortOrder"]/*' />
    /// <devdoc>
    ///    <para>
    ///       Specifies how items in
    ///       a list are sorted.
    ///    </para>
    /// </devdoc>
    public enum SortOrder {
    
        /// <include file='doc\SortOrder.uex' path='docs/doc[@for="SortOrder.None"]/*' />
        /// <devdoc>
        ///    <para>
        ///       The items are
        ///       not sorted.
        ///    </para>
        /// </devdoc>
        None = 0,
    
        /// <include file='doc\SortOrder.uex' path='docs/doc[@for="SortOrder.Ascending"]/*' />
        /// <devdoc>
        ///    <para>
        ///       The items
        ///       are sorted in ascending order.
        ///    </para>
        /// </devdoc>
        Ascending = 1,
    
        /// <include file='doc\SortOrder.uex' path='docs/doc[@for="SortOrder.Descending"]/*' />
        /// <devdoc>
        ///    <para>
        ///       The items are
        ///       sorted in descending order.
        ///    </para>
        /// </devdoc>
        Descending = 2,
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  6. System.Web.Helpers.SortDirection

    public enum SortDirection {
        Ascending,
        Descending
    }
    
    Run Code Online (Sandbox Code Playgroud)
  7. System.Web.UI.WebControls.SortDirection

    public enum SortDirection {
    
    
        Ascending = 0,
    
    
        Descending = 1
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  8. System.Xml.XPath.XmlSortOrder

    public enum XmlSortOrder {
        Ascending       = 1,
        Descending      = 2,
    }
    
    Run Code Online (Sandbox Code Playgroud)
  9. System.Data.Common.EntitySql.AST.OrderKind

    /// <summary>
    /// Represents order kind (none=asc,asc,desc).
    /// </summary>
    internal enum OrderKind
    {
        None,
        Asc,
        Desc
    }
    
    Run Code Online (Sandbox Code Playgroud)

编辑:另一个已经到了,因为这是最初发布的.

  1. System.Web.UI.DataVisualization.Charting

    /// <summary>
    /// Sorting order (Ascending or Descending).
    /// </summary>
    public enum PointSortOrder
    {
        /// <summary>
        /// Ascending sorting order
        /// </summary>
        Ascending, 
    
        /// <summary>
        /// Descending sorting order
        /// </summary>
        Descending
    }
    
    Run Code Online (Sandbox Code Playgroud)

  • 出于通用目的,我个人更喜欢 ListSortDirection。 (3认同)
  • 谢谢,我选择了“ListSortDirection”,因为它是少数(或唯一)不需要额外包的选项之一,因为它位于“System.ComponentModel”命名空间中。 (2认同)

And*_*ahl 32

  • 从@andrecarluccis判断出色的答案`ListSortDirection`如果你只想要升序/降序更好 - 因为更多目标的可用性. (3认同)
  • 我也要说ListSortDirection,因为另一个与SqlClient有关。 (2认同)