C# language: lambda expressions and anonymous methods