0

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

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

它显示了所有的项目,drvrs即使有一些不活动的项目driversdrivers当我调试程序并应用第三个 LINQ 语句时, get中的所有布尔状态都由True. 我也尝试了以下替代方法,但对我不起作用。

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

我的代码中缺少什么或需要任何更改,请帮忙。

4

2 回答 2

1

您必须使用==而不是=进行比较

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

或者

List<Roaster_Driver> drvrs = drivers.Where(x => x.isactive).ToList();
于 2012-12-04T11:35:31.373 回答
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;
于 2012-12-04T11:35:39.770 回答