將數據源進行Linq排序
作者:望月神
筆者取出的數據集要在后臺進行排序,以前總是用DataView.Sort(),感覺很是不爽,今天在vs2008下嘗試用Linq排序,雖然代碼不是很樂觀,但感覺還是要爽一些。
Linq排序實現起來較簡單,尤其是筆者十分推重Linq排序,到底筆者為何如此推崇Linq排序呢,請看看此文章吧,并且筆者還和大家分享了Linq排序的代碼呦!
已經取出的數據集要在后臺進行排序,以前總是用DataView.Sort(),感覺很是不爽,今天在vs2008下嘗試用Linq排序,雖然代碼不是很樂觀,但感覺還是要爽一些
Linq排序代碼如下:
主要是這句
- var s1 = (from r in dt.AsEnumerable()
- orderby r.Field<decimal>("達標率") descending
- select r.Take(num).ToArray();
將Linq排序的結果轉換為數組
- Array list = s1.ToArray();
- List
objindex = new List(); - for (int k = 0; k < list.Length; k++)
- {
- //格式化成固定的DataRow并插入到類中
- objindex.Add(new Index_ShowField(((DataRow)(((System.Data.DataRow[])s1)[k]))[0].ToString(),
- ((DataRow)(((System.Data.DataRow[])s1)[k]))[3].ToString()));
- }
- DataTable dtNew = new DataTable();
- dtNew.Columns.Add("代碼名稱");
- dtNew.Columns.Add("達標率");
根據創建好的類來構建需要的DataTable
- foreach (Index_ShowField objfield in objindex)
- {
- DataRow dr = dtNew.NewRow();
- dr[0] = objfield.Name;
- dr[1] = objfield.Per;
- dtNew.Rows.Add(dr);
- }
- return dtNew;
以上就是對Linq排序的簡單介紹,希望能給你帶來啟迪。
【編輯推薦】
責任編輯:阡陌
來源:
CSDN