Thought this was really cool.
I have a generic List of objects, for example:
List<User> users = GetAllUsers();
I want to find a user by username. Usually you would loop through looking for the item with the matching username and return the user that was found.
or you could do this:
User loggedOnUser = users.Find(delegate(User u) { return u.Username == "jbloggs"; });
Much less code, and you could match on any property of the object that you wanted.
Cheers