3 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用Any
而不是Where
asWhere
返回一個(gè)序列,而不是一個(gè)bool
.
suborder.OrderLineItemList.Any(x => x.BundleComponentList.Any(y => y.Product == "Shoes")))

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
我會(huì)將 lambda 與 LINQ 結(jié)合起來(lái)。更容易閱讀和查看發(fā)生了什么:
var orders = from o in suborder.OrderLineItemList
where
o.Product == "Shoes" ||
o.BundleComponentList.Any(c => c.Product == "Shoes")
select o;
bool isShoesOrder = orders.Any();

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
Where()
不返回布爾值,而是返回 an IEnumerable
,因此不能在 if 子句中使用。你應(yīng)該Any()
在你的情況下使用。
if (suborder.OrderLineItemList.Any(x => x.Product == "Shoes") || suborder.OrderLineItemList.Any(x => x.BundleComponentList.Any(y => y.Product == "Shoes")))
另請(qǐng)注意,上述 if 子句假定 suborder 永遠(yuǎn)不會(huì)為空。
- 3 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)