私はこれらの車のリストとその車のリストを持っています。すべてのレンタルはDateTime From
とDateTime To
とCar Car
です。リストの要素を別のリストの値に基づいて効率的にフィルタリングする方法
私は、選択した期間に利用できない車のリストから除外したいと思います。この期間の始めと終わりは、2つの値、つまりDateTimePickers
です。
私はこのコードで私の目標を達成しました:
public void FilterAvailableCars() {
List<Car> cars = ObjectPlus.Objects[typeof(Car)].Select(o => (Car)o).ToList();
List<Rental> rentals = ObjectPlus.Objects[typeof(Rental)].Select(r => (Rental)r).ToList();
foreach (var rent in rentals) {
if (fromDateTimePicker.Value < rent.To && rent.From < toDateTimePicker.Value) {
cars.Remove(rent.Car);
}
}
carListBox.DataSource = cars;
}
私は、LINQを混合し、forループが、私はLINQのソリューションは次のようになりますどのように純粋かつ効率的に知っていただきたいと思います。
あなたは、LINQのを理解しているように見えるので、私はあなたが持つ難しさを持っているかが不明です。あなたはLinqの 'Where'に精通していますか?それとも効率的な質問ですか? – Ulric
すべての関数をlinqに変換しないでください。あなたのコードは簡単に理解できるはずです。複雑なlinqステートメントは、コードを維持しにくいものにします。現在のソリューションを変更する必要はありません。 – jdweng