Do and Run
A couple of quick extension methods for your amusement that I use a lot.
1: /// <summary>
2: /// Runs action against the specified source.
3: /// </summary>
4: /// <typeparam name="T">The type of the element.</typeparam>
5: /// <param name="source">The source.</param>
6: /// <param name="action">The action.</param>
7: public static void Run<T>(this IEnumerable<T> source, Function<T> action)
8: { 9: if (source == null)
10: { 11: throw new ArgumentNullException("source");
12: } 13: 14: if (action == null)
15: { 16: throw new ArgumentNullException("action");
17: } 18: 19: foreach (var element in source)
20: { 21: action(element); 22: } 23: } 24: 25: /// <summary>
26: /// Does action against the specified source and returns the source.
27: /// </summary>
28: /// <typeparam name="T">The type of the element.</typeparam>
29: /// <param name="source">The source.</param>
30: /// <param name="action">The action.</param>
31: /// <returns>The source after the action is executed.</returns>
32: public static IEnumerable<T> Do<T>(this IEnumerable<T> source, Function<T> action)
33: { 34: if (source == null)
35: { 36: throw new ArgumentNullException("source");
37: } 38: 39: if (action == null)
40: { 41: throw new ArgumentNullException("action");
42: } 43: 44: return source.Select(
45: element => 46: { 47: action(element); 48: return element;
49: }); 50: }
Comments
Comments are closed