Ich versuche, eine Erweiterungsmethode zu erstellen, die auf einem IEnumerable
eines Typen "erweitert", einen Ausdruck als einen Parameter akzeptiert und einen IEnumerable
des gleichen Typen zurückgibt.Benutzerdefinierter Ausdruck als Parameter und Rückgabe von IEnumerable des generischen Typs
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...
}
es dann rufen Sie wie folgt:
var bigCities = cities.CustomExtension(c => c.occupants >= 1000000);
ODER
var coldCities = cities.CustomExtension(c => c.avgTemp <= 20);
HINWEIS: Es ist nicht nur für "Stadt" Objekte, ist der Plan, es generisch zu halten so kann ich die gleiche Methode für ähnliche Typen verwenden
Vielen Dank im Voraus ...
Also, was ist falsch mit nur 'Wo' zu verwenden? Auch Ihr Beispiel sollte 'cities.Where (Prädikat)' sein. – DavidG
Sie beschreiben im Wesentlichen die Erweiterungsmethode 'Where'. – Nkosi
Welchen Zweck hat diese Erweiterung? Ich frage, weil aktuell die von Ihnen beschriebene Funktionalität bereits existiert. Gibt es ein zusätzliches Ziel, das Sie erreichen möchten? – Nkosi