在SQL中,我可以作出若像以下 如果MY_STATE在(1,2,3,4)我可以使用C#中的linq壓縮if語句嗎?
在C#我聲明爲類型 如果(MY_STATE == STATE.CT || MY_STATE = = STATE.MA || MY_STATE == STATE.VA || MY_STATE == STATE.RI)
這顯然更笨拙。我可以使用LINQ來模仿sql的「in」語句嗎?
我正在尋找類似 如果(MY_STATE在(STATE.CT,STATE.MA,STATE.VA,STATE.RI))
看起來像SQL的LINQ語法只能在C#中創建IEnumerables。你想要的是一個布爾結果,所以最接近的就是(new [] {State.CT,State.MA})。Contains(myState)。這比編寫if語句有更多的開銷;除非你的可接受狀態列表在運行時會變爲動態的,否則這樣做確實沒有意義。 – tclem 2010-01-05 15:36:55
謝謝,我沒有考慮到這一點。我不希望將某些東西從編譯時改爲運行時,以使它看起來很漂亮。 – diadem 2010-01-05 15:44:39