在.NET中是否有一個用於Asc或Desc命令的Enum? 我需要在不同庫中使用排序概念,並且我想盡可能地使用鬆耦合。在.NET中是否存在用於Asc或Desc排序的Enum?
回答
- SortOrder在System.Data.SqlClient的
- ListSortDirection在System.ComponentModel
正確答案!有什麼更好的(可能是原子,簡單)庫使用?我將在存儲庫的界面中使用它,所以SortOrder是更好的選擇? – Custodio 2011-06-16 13:35:45
由@andrecarluccis判斷優秀的答案'ListSortDirection'更好,如果你只想升序/降序 - 因爲可用性更多的目標。 – 2011-06-16 14:17:10
我會說ListSortDirection,因爲另一個綁定到SqlClient。 – BrainSlugs83 2013-09-24 21:58:11
有兩個,我知道: SortDirection和SortOrder
一個快速需要注意的是,這些都在System.Web.UI.WebControls
和System.Windows.Forms
命名空間分別發現,所以有他們可能不適用的可能性對於你在做什麼語義上的。
SortOrder和ListSortDirection是兩個有效的選擇,但要記住這一點:
- 可以在.net版本1.1至4和silverlight中找到。
- 排序順序是強制性的:ListSortDirection只有「升序」和「降序」選項,因此用戶也可以選擇其中的一個。
SortOrder:只在.NET版本3.5和4爲Silverlight不支持
- 可用。
- 排序順序是可選的:您也有「未指定」選項。
與Windows.Forms.SortOrder和Data.SqlClient.SortOrder
經檢查第一有趣的觀點具有值:
public enum SortOrder
{
None = 0,
Ascending = 1,
Descending = 2,
}
,而第二個有價值觀:
public enum SortOrder
{
Unspecified = -1,
Ascending = 0,
Descending = 1,
}
可能是一個好主意,一致,特別是如果序列化。
.NET中有超過8個排序枚舉。它表明,即使在微軟工程師將重新發明輪子。評論實踐和代碼風格各不相同也很有趣。
這裏是我發現的那些:
System.ComponentModel.ListSortDirection
public enum ListSortDirection { /// <devdoc> /// <para>Sort in ascending order.</para> /// </devdoc> Ascending, /// <devdoc> /// <para>Sort in descending order.</para> /// </devdoc> Descending }
System.Data.SqlClient.SortOrder
public enum SortOrder { Unspecified = -1, Ascending = 0, Descending = 1 }
System.Data.Linq.SqlClient.SqlOrderType
internal enum SqlOrderType { Ascending, Descending }
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 }
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, }
System.Web.Helpers.SortDirection
public enum SortDirection { Ascending, Descending }
System.Web.UI.WebControls.SortDirection
public enum SortDirection { Ascending = 0, Descending = 1 }
-
public enum XmlSortOrder { Ascending = 1, Descending = 2, }
System.Data.Common.EntitySql.AST.OrderKind
/// <summary> /// Represents order kind (none=asc,asc,desc). /// </summary> internal enum OrderKind { None, Asc, Desc }
編輯:另一個已經到來,因爲這最初發布。
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 }
還要注意,雖然'SortOrder'住在System.Data中。SqlClient命名空間,它由System.Data程序集定義。 – Dejan 2015-11-17 14:30:14
查看這些我認爲DirectoryServices選項是最好的,如果你認爲一個命令必須存在。如果你想了解自然順序的概念,那麼SqlClient就更好了。然而,我不知道爲什麼有人會打擾最終發送消息「通過不以任何特定方式訂購Foo而訂購Foo」......也許如果您想要未指定意味着洗牌結果,這將是合理的。 – 2016-03-14 14:42:01
再仔細看看,我剛剛意識到Active Directory服務不像文件系統目錄。 SqlClient的SortOrder在.NET Core中,所以是XmlSortOrder。顯然,如果你不希望在SqlClient的 – 2016-03-17 13:02:58
- 1. 在Rails中實現排序ASC或DESC
- 2. MySQL的排序DESC和ASC
- 3. 在rails中實現排序asc或desc的最佳方式
- 4. 排序由XXX按ASC或DESC排序,動態排序,mysql ...
- 5. MySQL - 按某種不是ASC或DESC的順序排列
- 6. php&wordpress ASC/DESC使用href和排序
- 7. 是什麼在ASC和DESC
- 8. 手動排序concat文本(不是ASC或DESC)
- 9. dataTable的多列排序與「ASC」和「DESC」
- 10. jqgrid客戶端排序desc/asc
- 11. PHP MYSQL - 按鈕排序asc/desc
- 12. 如何對通用列表Asc或Desc進行排序?
- 13. 如何使用DESC或ASC對varchar數字列進行排序?
- 14. 如何在asc或desc順序中對varchar字段進行排序
- 15. 根據其他表的值排序MySQL查詢ASC或DESC
- 16. 搜索查詢順序由asc或desc
- 17. Lodash - 在對象中排序對象(desc和asc)
- 18. 如何顯示基於排序asc/desc的箭頭(RoR 4)
- 19. TokuDB在ASC和DESC之間的排序時間不同
- 20. 如果column = X,則通過DESC進行MySQL排序,否則ASC
- 21. 使用ASC或DESC命令的主鍵?
- 22. 在ORDER BY CASE中使用ASC/DESC()
- 23. 如何在Redis中使用「field1 desc,field2 asc」順序創建排序集?
- 24. 在同一鏈接上對ASC和DESC進行排序
- 25. 在Tibco Spotfire上對過濾器值asc/desc進行排序
- 26. DataView.Sort - 不僅僅是asc/desc(需要自定義排序)
- 27. MySQL訂單不使用ASC或DESC
- 28. 使用Desc/Asc排序的Order By子句聲明
- 29. 我如何使用underscore.js做一個asc和desc排序?
- 30. 使用SELECT進行排序下拉asc desc連接數據庫
你的意思的LINQ?以及爲什麼你需要一個枚舉(不會是一個布爾就夠了 - 只有兩個選項) – 2011-06-16 13:19:00
我認爲他實際上是一個枚舉。這聽起來像他只是想要某些東西用於排序方向(即當用作參數時),如果它已經在Fx某處出現了。 – heisenberg 2011-06-16 13:20:50
@YetAnotherGeek「只有兩個選項」永遠不是使用布爾值的有效藉口。布爾存儲真假。他們對其他任何東西都不明確 - 包括性別,上升和下降等。 – BrainSlugs83 2013-09-24 21:55:13