2014-02-13 96 views
1

我有一些記錄的數據表,並有過濾條件即數據表的數據顯示,根據條件順序

datatable.select("ColumnName like '090%' or ColumnName like '070%' or ColumnName like '080%'"). 

現在我想要的數據表中的結果想安排像條件的序列數據意味着首先記錄應與'090%',然後'070%'和'080%'

任何人都可以幫助我嗎?

回答

1

Select()返回DataRow的數組。您應該能夠使用LINQ對它們進行排序...

// using System.Linq; 

var selectedRows = datatable.Select("ColumnName like '090%' or ColumnName like '080%' or ColumnName like '070%'"); 
var sortedSelectedRows = selectedRows.OrderByDescending(r => r["ColumnName"].ToString()).ToArray(); 

---更新---

如果你想這樣做,在無法進行排序的特定順序OrderBy,我不確定是否有簡單的方法。也許嘗試這樣的東西...

// using System.Linq; 

var group1 = datatable.Select("ColumnName like '090%'); 
var group2 = datatable.Select("ColumnName like '070%'); 
var group3 = datatable.Select("ColumnName like '080%'); 

var selectedRows = group1.Concat(group2).Concat(group3).ToArray(); 

我不會這樣做,如果有很多行在原始數據表雖然。性能會非常糟糕。

+0

謝謝。但是什麼時候datatable.Select(「ColumnName像'090%'或ColumnName'070%'或ColumnName像'080%'」)來..請看看我有更新我的文章 – Jankya

+0

謝謝安東尼朱。我有這個邏輯已經在尋找最好的方法來做到這一點,因爲我有數百萬條記錄,並希望在一個查詢或一個linq操作中執行此操作。 – Jankya