using System.Collections.Generic;
using System.Collections;
public static void Main()
var source = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
Console.WriteLine("Before FindAll");
var result = source.FindAll(x => {
Console.WriteLine("After FindAll");
Console.WriteLine("Count " + result.Count());
Console.WriteLine("Before Where");
var enumerable = source.Where(x =>
Console.WriteLine("After Where");
Console.WriteLine("Before ToList");
result = enumerable.ToList();
Console.WriteLine("After ToList");
Console.WriteLine("Before Nested Where");
enumerable = source.Where(x => x == 1).Where(x => {
Console.WriteLine("After Nested Where");
Console.WriteLine("Before Nested Where ToList");
result = enumerable.ToList();
Console.WriteLine("After Nested Where ToList");
Console.WriteLine("Begin Legacy-Like Code");
var desiredItem = source.FindAll(x => {
}).FirstOrDefault(x => x == 2);
Console.WriteLine("Desired Item " + desiredItem);
Console.WriteLine("End Legacy-Like Code");
Console.WriteLine("Begin Revised Code");
desiredItem = source.Where(x => {
}).FirstOrDefault(x => x == 2);
Console.WriteLine("Desired Item " + desiredItem);
Console.WriteLine("End Revised Code");