Я пытаюсь создать метод расширения, который «расширяется» на 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);
ИЛИ
var coldCities = cities.CustomExtension(c => c.avgTemp <= 20);
ПРИМЕЧАНИЕ: Это не только для "городских" объектов, план, чтобы сохранить его родовое поэтому я могу использовать тот же метод для аналогичных типов
Заранее спасибо ...
Итак, что не так, просто используя 'Where'? Также ваш пример должен быть «города. Где (предикат)». – DavidG
В основном вы описываете метод расширения 'Where'. – Nkosi
Какова цель этого расширения. Я спрашиваю, потому что в настоящее время функциональность, которую вы описываете, уже существует. Есть ли еще одна цель, которую вы пытаетесь достичь? – Nkosi