A generic convertor for IEnumerable
Apart from ForEach<T>, as I described in my previous post, I noticed the absence of ConvertAll<T> on everything but List<T> as well. Pretty annoying when I wanted to convert a list of business objects of So I extended my static class GenericUtilities with another extension methdo
using System; using System.Collections.Generic; namespace LocalJoost.Utilities { public static class GenericExtensions { // previous code for ForEach omitted. public static IEnumerable<TC> ConvertAll<T, TC>( this IEnumerable<T> inputList, Converter<T, TC> convert) { foreach( var t in inputList ) { yield return convert(t); } } }This permitted me to do something like this:
return ListRubriek.Get() .ConvertAll(p => new CascadingDropDownNameValue( p.Omschrijving, p.Id.ToString())) .ToArray();to easily convert a list of CSLA business objects into a list that could be used in an ASP.NET Ajax Cascading dropdown. Nothing special for the veteran functional programmer I guess but still, useful.
This is actually the 2nd version - thanks to Jarno Peschier for some constructive criticism