Существует ли Enum для заказа Asc или Desc в .NET?

Есть ли Enum изначально в .NET для упорядочения Asc или Desc? Мне нужно использовать концепцию упорядочения в разных библиотеках, и я хочу как можно более свободную связь.

  • SortOrder в System.Data.SqlClient
  • ListSortDirection в System.ComponentModel

В .NET существует более 8 сортировочных перечислений. Это показывает, даже в Microsoft инженеры будут изобретать колесо. Также интересно, насколько дико действуют методы комментариев и стиль кода.

Вот те, которые я нашел:

  1. System.ComponentModel.ListSortDirection

     public enum ListSortDirection { ///  /// Sort in ascending order. ///  Ascending, ///  /// Sort in descending order. ///  Descending } 
  2. System.Data.SqlClient.SortOrder

     public enum SortOrder { Unspecified = -1, Ascending = 0, Descending = 1 } 
  3. System.Data.Linq.SqlClient.SqlOrderType

     internal enum SqlOrderType { Ascending, Descending } 
  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 } 
  5. System.Windows.Forms.SortOrder

     ///  ///  ///  /// Specifies how items in /// a list are sorted. ///  ///  public enum SortOrder { ///  ///  ///  /// The items are /// not sorted. ///  ///  None = 0, ///  ///  ///  /// The items /// are sorted in ascending order. ///  ///  Ascending = 1, ///  ///  ///  /// The items are /// sorted in descending order. ///  ///  Descending = 2, } 
  6. System.Web.Helpers.SortDirection

     public enum SortDirection { Ascending, Descending } 
  7. System.Web.UI.WebControls.SortDirection

     public enum SortDirection { Ascending = 0, Descending = 1 } 
  8. System.Xml.XPath.XmlSortOrder

     public enum XmlSortOrder { Ascending = 1, Descending = 2, } 
  9. System.Data.Common.EntitySql.AST.OrderKind

     ///  /// Represents order kind (none=asc,asc,desc). ///  internal enum OrderKind { None, Asc, Desc } 

Изменить: еще один появился с тех пор, как это было изначально опубликовано.

  1. System.Web.UI.DataVisualization.Charting

     ///  /// Sorting order (Ascending or Descending). ///  public enum PointSortOrder { ///  /// Ascending sorting order ///  Ascending, ///  /// Descending sorting order ///  Descending } 

SortOrder и ListSortDirection – два допустимых варианта, но имейте в виду следующее:

ListSortDirection :

  • ansible в версиях .net с 1,1 до 4 и silverlight.
  • порядок сортировки является обязательным: ListSortDirection имеет только опции «Восхождение» и «Убывание», поэтому пользователь также выбирает один из них.

SortOrder :

  • доступны только в версиях .net 3.5 и 4. Нет поддержки для Silverlight.
  • порядок сортировки является необязательным: у вас также есть опция «Unspecified».

Интересный момент, связанный с Windows.Forms.SortOrder и Data.SqlClient.SortOrder

При проверке первые значения:

 public enum SortOrder { None = 0, Ascending = 1, Descending = 2, } 

а вторая имеет значения:

 public enum SortOrder { Unspecified = -1, Ascending = 0, Descending = 1, } 

Вероятно, хорошая идея быть последовательной, особенно если сериализация.

Есть два, о которых я знаю: SortDirection и SortOrder

Одно быстрое предостережение заключается в том, что они находятся в System.Web.UI.WebControls имен System.Web.UI.WebControls и System.Windows.Forms , соответственно, поэтому существует вероятность, что они могут не применяться к тому, что вы делаете семантически .