我需要针对包含多个可选参数的返回列表编写 LINQ 查询。将有以下变量:
计划、ID、名字、姓氏、DateFrom、DateTo、MemDateOfBirth
我想使用这些参数通过 LINQ 返回一个过滤列表,但它们都是可选的。当用户点击搜索按钮时,至少会提供一个,但这将由用户决定他们想要搜索的内容。如果他们提供超过 1 个,我需要按他们提供的所有方法进行过滤...
因此,例如,如果他们提供名字和起止日期,我想通过起止日期之间的名字返回一个人的所有实例的过滤列表,等等......
使用 LINQ 完成此任务的最简单方法是什么?这些变量是可选参数,因此可以提供其中的任何一个或全部。我知道我可以返回主列表,然后多次过滤它以获得结果,但我想知道是否有一种更快、更简单的方法来通过 LINQ 来做到这一点......
在此先感谢您的帮助!
我知道这是可能的,但我不确定如何设置它.基本上我需要为每个员工提取数据,但前提是它满足基于几个不同日期的某些标准.
例如,如果员工在6/1之前被分配到公司,则会自动计算.
如果员工在6/1之后被分配到公司,那么只有在他们被分配之后才能对该公司进行审核(即,他们在6月25日被分配并在7/1进行审核时),他们才会被计算在内. .这应该被计算在内.例如,如果他们在6月25日被分配并且审查发生在6月15日,那么他们将不计入这名员工)
如果员工在4/1之前被从公司中移除,他们就不会被计算在内.如果它们在4/1或之后被移除则重要.
因此,关键列是员工 - 客户表中的审核创建日期,开始日期和结束日期.
我认为这需要某种类型的子查询,它返回该客户的员工的开始日期,然后根据评估此日期的Case语句与审核日期比较审核日期,但我不确定如何执行此操作.
任何帮助,将不胜感激.
编辑:表结构/数据如下:
员工 - 客户表
ID EmpID CustID StartDate EndDate
1 4 10 10/1/2017 2/21/2018
2 4 11 10/1/2017 7/31/2018
3 4 15 10/1/2017 4/8/2018
4 4 17 6/1/2018 NULL (means still active with this employee)
5 4 19 5/18/2018 NULL
Run Code Online (Sandbox Code Playgroud)
客户数据表
ID CustID ActivityDate Task
1 10 1/13/2018 Review
3 15 4/2/2018 Review
4 17 6/25/2018 Review
5 17 6/13/2018 Client Engagement
6 17 6/29/2018 Client Engagement
7 19 5/25/2018 …Run Code Online (Sandbox Code Playgroud) 我有2个IEnumerable集合,其中包含一个字符和字符的计数(即s1 {Key ='a'Count ='5'}和s2 {Key ='a'Count ='4'})
我想用Linq查询执行以下操作:
如果该项目在两个集合中,我只希望来自集合的项目具有更高的计数,即来自s1的Count = 5
如果该项只在一个集合中,那么我们使用该项(不能使用Distinct,因为它说IEnumerable Anonymous不包含Distinct)
如果这些物品都在两个集合中,但它们的数量相等,那么我们使用哪一个并不重要.
无法想象这一部分,我很确定一旦我看到解决方案,我想要把我的头撞到墙上......