タイプのIEnumerable
で「拡張」する拡張メソッドを作成しようとしています。式をパラメータとして受け取り、同じタイプのIEnumerable
を返します。パラメータとしてカスタム式を返し、汎用タイプのIEnumerableを返す
public static IEnumerable<T> CustomExtension<T>(this IEnumerable<T> cities, Expression<Func<T, bool>> predicate)
{
return Enumerable.Where(cities, predicate);
//the line above is wrong, doesn't compile, but it explains my intentions...
}
そして、そのようにそれを呼び出す:
var bigCities = cities.CustomExtension(c => c.occupants >= 1000000);
OR
var coldCities = cities.CustomExtension(c => c.avgTemp <= 20);
注:それはちょうど "都市" オブジェクトのために、計画は一般的な、それを維持することですされていません同じようなタイプの同じメソッドを使用することができます
ありがとうございます事前に...
「Where」を使用すると何が問題になりますか?また、あなたの例は 'cities.Where(述語)'でなければなりません。 – DavidG
基本的に 'Where'拡張メソッドについて説明しています。 – Nkosi
この拡張の目的は何か。私は現在あなたが説明している機能がすでに存在しているので尋ねます。あなたが達成しようとしているいくつかの追加の目標はありますか? – Nkosi