&安培;&安培;不能适用于布尔

时间:2017-05-23 08:19:55

标签: c# asp.net-mvc

我需要检查列表中的元素是否包含值true。我目前收到错误&&不能应用于布尔或服务

public class CLASS A implements Stuff{ public int Add(int id); } public class CLASS B implements Stuff{ public int Add(String name); }

condition & services.FirstOrDefault(p => p.IsPrimaryBusinessLine == true)

服务

var services = serviceRepository
  .GetServicesByRequestID(newReqeustViewModel.RequestID);


 if (services != null && 
     services.Count != 0 && 
     services.FirstOrDefault(p => p.IsPrimaryBusinessLine == true))

5 个答案:

答案 0 :(得分:2)

FirstOrdefault返回与条件匹配的第一个项目,我想你想知道是否有这样的服务,因为你在if中使用它,然后不要使用FirstOrdefault但是Any

if (services != null && services.Any(p => p.IsPrimaryBusinessLine == true))
{

}

答案 1 :(得分:2)

您尝试将其用作bool

services.FirstOrDefault(p => p.IsPrimaryBusinessLine == true)

但是这不能解析为bool,它会解析为Service的实例。您在尝试检查有关该服务的内容是什么?它存在吗?从你正在做的事情来看,这可能是:

services.FirstOrDefault(p => p.IsPrimaryBusinessLine == true) != null

可以简化为:

services.Any(p => p.IsPrimaryBusinessLine == true)

但你需要检查一下。表达式本身需要解析为bool

答案 2 :(得分:1)

您可以使用Linq Any方法。

例如:

services.Any(p => p.IsPrimaryBusinessLine == true)

答案 3 :(得分:0)

适合您情况的最佳方式:

if (services != null && services.Count != 0 && services.Any(p => p.IsPrimaryBusinessLine))
{

}

答案 4 :(得分:0)

试试这个:

if (services != null && services.Any(p => p.IsPrimaryBusinessLine))