データベースを操作する場合、複数の基準に基づいて結果をフィルタリングするために WHERE IN 句を使用する必要が生じる場合があります。これは、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 コレクションに国コードが存在するすべての州を取得します。ラムダ式 (s => countryCodes.Contains(s. CountryCode)) は、指定された基準に一致する各州に対して true と評価されるため、それに応じて結果をフィルタリングできます。
以上がLINQ の `Contains()` メソッドはどのようにして `WHERE IN` 句を置き換えることができるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。