詳細闡述linq動態(tài)排序
作者:佚名 
  linq動態(tài)排序不是很好實現的,很多開發(fā)者都被困在了這個方面,所以筆者今天分享一下自己的經驗,希望能給大家?guī)韼椭?/div>  
 
                               
  linq動態(tài)排序不是很好實現的,很多開發(fā)者都在這個方面有疑惑,所以筆者今天分享一下自己的經驗,希望能給大家?guī)韼椭?/P>
想實現linq動態(tài)排序就是linq的order by 后跟動態(tài)的函數可以用委托實現,但是發(fā)現實現委托函數時候:
- int testSelector(post p)
 - {
 - ret urn p.Uu;
 - }
 
這個返回類型受到了限制僅是相同類型的字段可以動態(tài)排序是不是Func
- public IEnumerable
 Sort string userName, Func( - selector)
 - {
 - return from post in posts
 - where post.UserName == userName
 - orderby selector(post) descending
 - select post;
 - }
 
這個函數的TKey限制只能是一種類型 ?有什么好的實現嗎?
linq動態(tài)排序具體解決的代碼
- public class OrderBy
 - {
 - List
 posts = new List(); - public List
 GtePost() - {
 - for (int i = 0, j=1000; i < 1000 ; i++, j--)
 - {
 - post p = new post();
 - p.Ty = i;
 - p.Uu=j;
 - p.UserName = "1";
 - posts.Add(p);
 - }
 - return posts;
 - }
 - /**////
 - /// Func
 委托的實現 - ///
 - ///
 - ///
 可以動態(tài)設置排序的列 - int testSelector(post p)
 - {
 - return p.Uu;
 - }
 - public IEnumerable
 GetData() - {
 - GtePost();
 - return Sort<int>("", testSelector);
 - }
 - public IEnumerable
 Sort string userName, Func( - TKey> selector)
 - {
 - return from post in posts
 - where post.UserName == userName
 - orderby selector(post) descending
 - select post;
 - }
 - }
 
linq動態(tài)排序Code
- void BindData()
 - {
 - OrderBy o = new OrderBy();
 - post p=new post ();
 - this.dataGridView1.DataSource = o.GetData().ToList
 (); - }
 
以上就是對linq動態(tài)排序解決方法的簡單介紹。
【編輯推薦】
責任編輯:阡陌 
                    來源:
                    博客園
  
 
相關推薦
 2009-09-15 23:21:17
2009-09-14 13:14:49
2009-09-14 14:17:11
2010-05-05 18:44:27
 
 
 














 
 
 