What is the C# equivalent of map function in Haskell

Viewed 68415

map function in Haskell has two input parameters. The first parameter is a function and second parameter is a list. The map function applies the function passed as input parameter to all the elements in the list and returns a new list.

Is there a C# equivalent to this functionality?

4 Answers

Another alternative to Select and SelectMany is to write your own extension method.

public static IEnumerable<U> Map<T, U>(this IEnumerable<T> s, Func<T, U> f)
{
  foreach (var item in s)
    yield return f(item);
}

Thanks Wes Dyer for this sweet extension method! :) See post for more details.

Since Select and SelectMany were already mentioned, I'll answer an additional question you didn't ask: fold is found as Aggregate.

Now everyone reading this should be fully equipped to go be That Guy who writes Language X using Language Y idioms... so for the sake of your fellow C# programmers, don't get too carried away.

Related