首页 > 解决方案 > 结合两个 lambda 表达式查询

问题描述

我有以下两个 lambda 表达式。你能帮我把它们合二为一吗?

private bool CheckForNonUniqueRollNumbers(IEnumerable<EmployeeInfoDto> empDtos)
{

    var dtosToCheck = empDtos.Where(dto => dto.ExceptionIfAny == null).ToList();
    var allNumbersEmpty = empDtos.All(dto => dto.Identity.RollNumber == "");
    if (dtosToCheck.Any() && !allSerialNumbersEmpty)
    {

    }

我想结合以上两个查询

我尝试了以下查询,但我不确定这是否正确

var dtosToCheck = empDtos.Where(dto => dto.ExceptionIfAny == null 
    || dto.Identity.RollNumber == "").ToList();
    if (dtosToCheck.Any())
     {

     }

谢谢。

标签: c#lambda

解决方案


如果两个条件都满足(同时),你应该使用&&逻辑连接它们(逻辑AND):

var allNumbersEmpty = empDtos
                            .Where(dto => dto.ExceptionIfAny == null
                                   && dto.Identity.RollNumber == "")
                            .ToList();

您的查询||将产生一个合乎逻辑的OR,如果一个或另一个条件适用,它将适用。


推荐阅读