过滤集合布尔属性不起作用

时间:2012-12-04 11:34:42

标签: asp.net linq ado.net

我想在其中一个类属性isactive上过滤我的列表。但它没有正确过滤它显示所有项目。以下是代码。

Roaster_Driver[] drivers = null;
drivers = client.GetDriverDetail();
List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive = true).ToList();

它显示drvrs中的所有项目,即使drivers中有一些非活动项目。当我调试程序并应用第三个LINQ语句时,drivers中的所有布尔状态都由True更新。我也尝试过以下替代方案但不适合我。

 var drvrs = (from driver in drivers
                     where driver.isactive = true
                     select driver);

我的代码中缺少什么或需要进行任何更改请帮助。

2 个答案:

答案 0 :(得分:1)

您必须使用==代替=进行比较

List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive == true).ToList();

List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive).ToList();

答案 1 :(得分:1)

通过==运算符完成C#的比较,而不是单=(即赋值)。

List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive == true).ToList();

此外,您无需将布尔值与truefalse进行比较 - 直接使用值:

List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive).ToList();

查询语法:

var drvrs = from driver in drivers
            where driver.isactive
            select driver;