0

クラス プロパティの 1 つでリストをフィルタリングしたいisactive。しかし、正しくフィルタリングされていないため、すべてのアイテムが表示されています。以下はコードです。

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

drvrsに非アクティブなアイテムがあっても、すべてのアイテムが表示されdriversます。プログラムをデバッグして 3 番目の LINQ ステートメントを適用すると、すべてのブール値のステータスがdriversによって更新され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();

trueまた、ブール値をorと比較する必要はありませんfalse- 値を直接使用します:

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 に答える