linq动态排序不是很好实现的,很多开发者都在这个方面有疑惑,所以笔者今天分享一下自己的经验,希望能给大家带来帮助。
创新互联公司专业为企业提供泸县网站建设、泸县做网站、泸县网站设计、泸县网站制作等企业网站建设、网页设计与制作、泸县企业网站模板建站服务,10年泸县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
想实现linq动态排序就是linq的order by 后跟动态的函数可以用委托实现,但是发现实现委托函数时候:
- int testSelector(post p)
- {
- ret urn p.Uu;
- }
这个返回类型受到了限制仅是相同类型的字段可以动态排序是不是Func selector 这个的实现我理解的有问题 ?
- public IEnumerable Sort ( string userName, Func
- selector)
- {
- return from post in posts
- where post.UserName == userName
- orderby selector(post) descending
- select post;
- }
这个函数的TKey限制只能是一种类型 ?有什么好的实现吗?
linq动态排序具体解决的代码
- 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 委托的实现
- ///
- ///
- /// 可以动态设置排序的列
- int testSelector(post p)
- {
- return p.Uu;
- }
- public IEnumerable GetData()
- {
- GtePost();
- return Sort
("", 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动态排序Code
- void BindData()
- {
- OrderBy o = new OrderBy();
- post p=new post ();
- this.dataGridView1.DataSource = o.GetData().ToList ();
- }
以上就是对linq动态排序解决方法的简单介绍。
分享文章:详细阐述linq动态排序
文章网址:http://www.csdahua.cn/qtweb/news0/62600.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网