我想在其中一个类属性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);
我的代码中缺少什么或需要进行任何更改请帮助。
答案 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();
此外,您无需将布尔值与true
或false
进行比较 - 直接使用值:
List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive).ToList();
查询语法:
var drvrs = from driver in drivers
where driver.isactive
select driver;