linq动态排序解决方法
linq动态排序不是很好实现的,很多开发者都在这个方面有疑惑,所以笔者今天分享一下自己的经验,希望能给大家带来帮助。
想实现linq动态排序就是linq的order by 后跟动态的函数可以用委托实现,但是发现实现委托函数时候:
- int testSelector(post p)
- {
- ret urn p.Uu;
- }
这个返回类型受到了限制仅是相同类型的字段可以动态排序是不是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动态排序具体解决的代码
- 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<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动态排序Code
- void BindData()
- {
- OrderBy o = new OrderBy();
- post p=new post ();
- this.dataGridView1.DataSource = o.GetData().ToList
(); - }
以上就是对linq动态排序解决方法的简单介绍。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?