using System.Collections.Generic;
public OtherThing OtherThing { get; set; }
public int Value { get; set; }
public static void Main()
List<Widget> widgets = new List<Widget>();
widgets.Add(new Widget() {
Console.WriteLine(widgets.ToList().Count());
Console.WriteLine(widgets.Select(w => w.OtherThing).Where(r => r != null).ToList().Count());
Console.WriteLine(widgets.Select(w => w.OtherThing).Where(r => r != null).Count());
Console.WriteLine(widgets.Where(r => r.OtherThing != null).Select(w => w.OtherThing).ToList().Count());
Console.WriteLine(widgets.Where(r => r.OtherThing != null).Select(w => w.OtherThing).Count());