linq 实现动态 orderby

推荐:http://www.cnblogs.com/roucheng/p/dushubiji.html

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

class Pet  
{  
   public string Name{get;set;}  
   public int Age{get;set;}  
}  
void Main()  
{   
      Pet[] pets = { new Pet { Name="Tim", Age=18 },  
                   new Pet { Name="Allen", Age=22 },  
                   new Pet { Name="Bill", Age=20  } };  
       
//如果我们想根据Age进行排序  很容易想到这样来写:      
  var query= from p in pets  
             orderby p.Age  
             select p;  
               
       
  query.ToList().ForEach(q=>Console.WriteLine(q.Name +"     "+q.Age));  
        /* 得到结果:  
        Tim     18 
        Bill    20 
        Allen   22 
        */  
          
}  
//但是有时项目内有多个排序条件 如有时要根据Name排序 有时要根据Age排序  何问起 hovertree.com
       //这时我们就要用到动态排序:  
void Main()  
{   
    Pet[] pets = { new Pet { Name="Tim", Age=18 },  
                   new Pet { Name="Allen", Age=22 },  
                   new Pet { Name="Bill", Age=20 } };  
    Console.WriteLine("Before Orderby:/r/n");         
    pets.ToList().ForEach(p=>Console.WriteLine(p.Name +"     "+p.Age));  
       
  var query= from p in pets  
             orderby GetPropertyValue(p,"Age")    
             select p;  
               
    Console.WriteLine("/r/nAfter Orderby:/r/n");  
  query.ToList().ForEach(q=>Console.WriteLine(q.Name +"     "+q.Age));  
           /* 
        Before Orderby: 
        Tim     18 
        Allen   22 
        Bill    20 
        After Orderby: 
         
        Tim     18 
        Bill    20 
        Allen   22 
        */         
}  /* 何问起 hovertree.com */
private static object GetPropertyValue(object obj, string property)  
{  
    System.Reflection.PropertyInfo propertyInfo=obj.GetType().GetProperty(property);  
    return propertyInfo.GetValue(obj, null);  
} 

推荐:http://www.cnblogs.com/roucheng/p/dushubiji.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120405.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • loadrunner录制脚本怎么设置字体编码

    loadrunner录制脚本怎么设置字体编码

    2021年7月17日
    88
  • 舆情分析系统技术解决方案及作用论文_网络舆情解决方案

    舆情分析系统技术解决方案及作用论文_网络舆情解决方案网络舆情分析工作的开展最先需要做好的就是网络舆情的搜集工作,由于互联网信息内容庞杂多样,舆情信息搜集起来困难,所以要进行舆情分析更是难上加难。但若舆情信息收集的不全,就极易导致舆情分析不正确。那么,到底舆情分析工作要怎么做呢?针对此问题,提供了以下舆情分析系统技术解决方案,供各位参考。在了解方案的前,先来说说为什么要采用舆情分析系统进行监测分析。一、使用舆情分析系统进行监测分析的意义网络信息化时代,信息数据量庞大,若一味采用人工进行舆情信息分析,容易出现收集的舆情不全、舆情分析不正确等问题。而通过利用

    2026年1月30日
    6
  • Oracle中拼接字符串条件查询[通俗易懂]

    Oracle中拼接字符串条件查询[通俗易懂]拼接字符串语法:SELECT*FROMDT_CKTWHEREINSTR(‘192.168.1.137,2.0.1.3’,T.IP)>0;

    2025年11月21日
    3
  • ajax怎么解决报414,关于c#:HTTP错误414。请求URL太长。 asp.net

    ajax怎么解决报414,关于c#:HTTP错误414。请求URL太长。 asp.net我收到错误”HTTP错误414。请求URL太长”。从下面的文章中,我了解到这是由于查询字符串很长所致:在web.config中,我有maxQueryStringLength=”2097151″。这是最大值吗?为了解决此问题,我应该在web.config中设置maxUrl吗?如果是这样,支持的最大值是多少?我该怎么办才能解决此错误?是否可以将URL中的某些长字符串替换为整数或Guid?如果…

    2022年6月3日
    44
  • Edge breaker记录

    Edge breaker记录和代码相关性非常强的是这篇文章,几乎就是伪代码了:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.58.7918&rep=rep1&type=pdf一、Compression阶段命令参数为umbrellla_times4.offB第一个参数就是输入网格,目前支持OFF和OVTable两种文件格式,这里…

    2022年6月1日
    36
  • 雅虎十四条性能优化原则「建议收藏」

    雅虎十四条性能优化原则「建议收藏」雅虎十四条性能优化原则欢迎访问我的博客https://qqqww.com/,祝所有码农同胞们早日走上人生巅峰,迎娶白富美~~首先我去看了《雅虎十四条性能优化原则》,当然是看大佬博客翻译过来的,纯英文的我看不懂Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在减少HTTP请求使用CDN添加Expire…

    2022年7月15日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号