This is old code that I haven't changed, and List.Count just returns an internal size member anyway so there is no perf difference.

This probably wants to be using a queue instead of faking one with a list, so I may change this anyway.