使用資料庫時,您可能會遇到需要使用 WHERE IN 子句基於多個條件過濾結果的情況。這可以使用 Contains() 方法在 LINQ(語言整合查詢)中輕鬆實現。
為了說明這一點,假設您要檢索屬於特定國家/地區代碼清單的所有州。您可以使用Contains() 方法簡化此流程,而不是像原始程式碼中那樣手動拆分國家/地區程式碼並循環它們:
public List<State> Wherein(string listofcountrycodes) { string[] countrycode = null; countrycode = listofcountrycodes.Split(','); List<State> statelist = new List<State>(); for (int i = 0; i < countrycode.Length; i++) { _states.AddRange( from states in _objdatasources.StateList() where states.CountryCode == countrycode[i].ToString() select new State { StateName = states.StateName }); } return _states; }
您可以使用Contains() 方法來簡化此流程:
dataSource.StateList.Where(s => countryCodes.Contains(s.CountryCode))
此表達式會擷取其國家/地區代碼出現在countryCodes集合中的所有州。對於符合指定條件的每個州,lambda 表達式 (s => CountryCodes.Contains(s.CountryCode)) 的計算結果為 true,從而允許您相應地過濾結果。
以上是LINQ 的 `Contains()` 方法如何取代 `WHERE IN` 子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!