An extension method that will be making its way into the Generic Extension Methods library is one I want to share tonight. It’s for projecting an action N times. Why such a method doesn’t already exist baffles me!
public static T Project<T>(this T projected, int n, Action<T> action)
for (int i = 0; i < n; ++i) action(projected);
Usage could not be simpler, any object can be projected to the specified action any number of times.
public static int Method()
var value = 1;
return value.Project(10, i => i*=i);
The projection in this case yields 10^10 as the answer. Overly simplistic example, but makes the point succinctly.