public ViewResult List(string category, int page = 1)
{
ProductsListViewModel viewModel = new ProductsListViewModel
{
Products = repository.Products
.Where(p => category == null || p.Category == category)
...........
該行:.Where(p => category == null || p.Category == category)
對我有點困惑。邏輯是:「如果類別爲空,則只選擇所選類別」。 這是來自一本書,但這是寫這個最好的方法嗎? 這是說類別可以是「null或類別值」。所以如果類別包含一個值,它將使用該值來選擇項目而不是null(null選擇所有項目)。 我寫這這是一種無用的,但工作,並作出更明確的:混淆LINQ where子句
.Where(p => category == null ? category == null :
p.Category == category)
我會收到這個邏輯嗎?
我不不認爲你的更清楚。也許如果你用true替換了第二次使用'category == null',它可能是...... – Chris
像喬恩說的那樣,它允許類別是可選的。如果類別爲空,它會短路並選擇全部。 – Sinaesthetic
謝謝大家。 。是的,在考慮到短路的情況下,現在就清楚了。我想我認爲它需要有條件。 –