Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linq查询从var B的y列共享var A中的x列_C#_Linq - Fatal编程技术网

C# linq查询从var B的y列共享var A中的x列

C# linq查询从var B的y列共享var A中的x列,c#,linq,C#,Linq,我想在2IQueryable变量中共享2列 我有以下两个变量: var leavingDays = resourcePlanningsInWeek.Where(rp => rp.Project.IsLeave); var employeeRostersInWeek = employeeRostersExcludedHolidays .Where(rp => rp.RosterDate >= startDate &&

我想在2
IQueryable
变量中共享2列

我有以下两个变量:

var leavingDays = resourcePlanningsInWeek.Where(rp => rp.Project.IsLeave);

var employeeRostersInWeek = employeeRostersExcludedHolidays
                .Where(rp => rp.RosterDate >= startDate &&
                             rp.RosterDate <= endDate);
var leavingDays=resourcePlanningsInWeek.Where(rp=>rp.Project.IsLeave);
var employeeRostersInWeek=employeeRostersExcludedHolidays
.其中(rp=>rp.RosterDate>=起始日期&&

rp.RosterDate我认为应该这样做:

var result =
    (from l in leavingDays
        from r in employeeRostersInWeek
        where l.PlanDate == r.RosterDate
        select l.RosterHours / r.DeploymentPlanned
    ).Sum();
但是,如果
RosterHours
DeploymentPlanned
定义为
int
s,并且您希望得到分数结果,那么您应该首先将其中一个转换为分数数据类型,如下所示:

var result =
    (from l in leavingDays
        from r in employeeRostersInWeek
        where l.PlanDate == r.RosterDate
        select Convert.ToDouble(l.RosterHours) / r.DeploymentPlanned
    ).Sum();

这并没有解决问题。我发现执行此计算时出现问题:8/0可能我需要执行此操作:结果=(从员工招聘周中的r开始的剩余天数中的l,其中l.PlanDate==r.RosterDate和r.RosterHours>0选择l.DeploymentPlaned/r.RosterHours)。总和();@user1326231您需要避免除以
DeploymentPlanned
如果它是
0
@user1326231例如,您可以使用以下命令重放
select
行:
select r.DeploymentPlanned==0?0:Convert.ToDouble(l.RosterHours)/r.DeploymentPlanned
我现在遇到了一个错误:值对于小数点来说太大或太小。这是因为我将结果插入小数点:Decimal NoopleVedays=Convert.ToDecimal(上面讨论的linq查询);@user1326231尝试检查您的值,看看哪个值会产生此错误(我假设它可能是一个非常小的
deploymentplan
值)