C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – lambda表达式中的条件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有2个列表返回相同的项目.
< FOO>具有适当的orderType,第一个列表为0,第二个列表为1
在第一个列表中我进行过滤,我必须将第二个列表中的项添加到受分页限制的结果中.
基本上这是我的最终查询

var listFoo= QueryList1.Concat(QueryList2);  //(IQueriablE)
List<foo> listFoo =listFoo.orderByDescending(r => r.ID)
                          .ThenBy(d =>d.orderTypE)
                          .Skip((currentPageIndex - 1) * pageSizE)
                          .Take(pageSizE)
                          .ToList();

这很有效,因为列表1作为主项目,列表2作为第一列表的详细信息.此外,我的过滤器应该只在第一个列表上工作.但问题来了.如何仅按日期订购第二个清单.我需要列出按日期排序的详细信息.
基本上我需要这样的东西:

List<foo> listFoo =listFoo.orderByDescending(r => r.ID)
                          .ThenBy(d =>d.orderTypE)
                          .ThenBy(x=>(x.ordertype==1)?x.DatE)
                          .Skip((currentPageIndex - 1) * pageSizE)
                          .Take(pageSizE)
                          .ToList();

编辑:

List 1 : 
id =1,ordertype=0,Date = new datetiR_9_11845@e(1950,1,4),[0]
id =2,2,1)   [1]
List 2 :
id =1,ordertype=1,5),[2]
id =1,2),[3]
id =1,3),[4]
id =1,4)   [5]

This should be ordered as follows : 
[0],[3],[4],[5],[2],[1]

解决方法

看起来你错过了三元运算符的最后一部分:

listFoo = listFoo.orderByDescending(r => r.ID)
                           .ThenBy(d =>d.orderTypE)
                           .ThenBy(x => (x.ordertype==1) ? x.Date : datetiR_9_11845@e.Minvalue)
                           .Skip((currentPageIndex - 1) * pageSizE)
                           .Take(pageSizE)
                           .ToList();

如果你不关心订单,如果ordertype不是1,那么else条件是任意的.

大佬总结

以上是大佬教程为你收集整理的c# – lambda表达式中的条件全部内容,希望文章能够帮你解决c# – lambda表达式中的条件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。