You may or may not be aware of the .ForEach() Method which is available on List<T> objects.

It is very handy for shortening your code.

Lets say you want to write a method which returns a list of MailAdress objects.  A more traditional way would be to do the following:

using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
 public static List<MailAddress> GetListOfMailAddressesFromString(string emailAddresses)
    {
        List<MailAddress> addressList = new List<MailAddress>();
        foreach (var s in emailAddresses.Split(';').ToList())
        {
            addressList.Add(new MailAddress(s));
        }
        return addressList;
    }

A more concise way of doing it, would be to attach the .ForEach method to the list of email addresses.
Inside the ForEach, you use a lambda expression to get the value of each item in the list of strings and then use that in adding to the addressList.

using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
public static List<MailAddress> GetListOfMailAddressesFromString(string emailAddresses)
    {
        List<MailAddress> addressList = new List<MailAddress>();
        emailAddresses.Split(';').ToList().ForEach(x => addressList.Add(new MailAddress(x)));
        return addressList;
    }

Paul Seal

Umbraco MVP and .NET Web Developer from Derby (UK) who specialises in building Content Management System (CMS) websites using MVC with Umbraco as a framework. Paul is passionate about web development and programming as a whole. Apart from when he's with his wife and son, if he's not writing code, he's thinking about it or listening to a podcast about it.

Proudly sponsored by

Moriyama

  • Moriyama build, support and deploy Umbraco, Azure and ASP.NET websites and applications.
AppVeyor

  • CI/CD service for Windows, Linux and macOS
  • Build, test, deploy your apps faster, on any platform.
elmah.io

  • elmah.io is the easy error logging and uptime monitoring service for .NET.
  • Take back control of your errors with support for all .NET web and logging frameworks.
uSync Complete

  • uSync.Complete gives you all the uSync packages, allowing you to completely control how your Umbraco settings, content and media is stored, transferred and managed across all your Umbraco Installations.
uSkinned

  • More than a theme for Umbraco CMS, take full control of your content and design with a feature-rich, award-nominated & content editor focused website platform.
UmbHost

  • Affordable, Geo-Redundant, Umbraco hosting which gives back to the community by sponsoring an Umbraco Open Source Developer with each hosting package sold.