亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

特定情況下 Linq 查詢中的條件 Where 子句

特定情況下 Linq 查詢中的條件 Where 子句

C#
九州編程 2021-08-22 14:49:52
我有一個實體框架查詢,它根據特定條件從數據庫中檢索結果。但是,有一個實例,我想根據 where 子句中的條件過濾結果。我認為案例陳述是我如何實現這一目標,有人能指出我正確的方向嗎?因此,對于從 OutageList 返回的結果,對于中斷類型為“Live”的情況,如果 NumberOfPeopleAffected 大于 4,我只希望將其包含在結果中。例如: outageList.Where(o => o.FaultType == "Live" && o.NumberOfPeopleAffected > 4)問題是,上面的代碼是不夠的,因為我也想返回其他中斷,只是對于Live中斷的情況,如果受影響的人數超過4,我只想返回它們。這有意義嗎?這是我需要的案例陳述嗎?如果是這樣,在 LINQ 中編寫它的最佳方法是什么?
查看完整描述

3 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

您可以在Where()子句中包含 OR 條件:

outageList.Where(o => (o.FaultType == "Live" && o.NumberOfPeopleAffected > 4) || o.FaultType != "Live");



查看完整回答
反對 回復 2021-08-22
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

使用這個查詢:

 outageList.Where(o => (o.FaultType == "Live" && o.NumberOfPeopleAffected > 4) || o.FaultType != "Live")


查看完整回答
反對 回復 2021-08-22
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

要在 linq 中執行您想要的操作,請在下面使用。


var faultList = new[] {"Live", "SomethingElse"};


outageList.Where(o => faultList.Contains(o.FaultType) && o.NumberOfPeopleAffected > (o.FaultType == "Live" ? 4 : 0));

老實說,我可以使用此聲明,但我意識到它可能難以閱讀。


查看完整回答
反對 回復 2021-08-22
  • 3 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號