自定义表达式作为参数并返回通用类型的 IEnumerable
Custom Expression as parameter and returning IEnumerable of generic type
我正在尝试创建一个扩展方法,该方法 "extends" 在类型的 IEnumerable
上,接受表达式作为参数,并且 returns 类型的 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);
注意: 它不仅仅适用于 "city" 对象,计划是保持它的通用性,这样我就可以在相似类型上使用相同的方法
提前致谢...
public static IEnumerable<T> CustomExtension<T>(this IEnumerable<T> cities, Func<T, bool> predicate)
{
return cities.Where(x => predicate(x));
}
我正在尝试创建一个扩展方法,该方法 "extends" 在类型的 IEnumerable
上,接受表达式作为参数,并且 returns 类型的 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);
注意: 它不仅仅适用于 "city" 对象,计划是保持它的通用性,这样我就可以在相似类型上使用相同的方法
提前致谢...
public static IEnumerable<T> CustomExtension<T>(this IEnumerable<T> cities, Func<T, bool> predicate)
{
return cities.Where(x => predicate(x));
}