This may or may not well documented. Just in case, if the FilteredElementCollector is not filtered (by type, class, category or at least by (non) ElementType) in the Revit collector way, the following exception would be thrown out:
"Autodesk.Revit.Exceptions.InvalidOperationException: The collector does not have a filter applied. Extraction or iteration of elements is not permitted without a filter.
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
So, it means we cannot cast the collector to a .NET list without doing anything else besides creating it so as to use the LINQ OfType instead of the collector OfClass to filter out some particular type of Revit elements. Wonder why it behaves so as many times at the beginning people are not sure what to operate on yet. What about collecting some type from users through a user interface then filtering the FilteredElementCollector next using the wonderful .NET Reflection technology?
Anyway, not so big a deal. Let's stick to the FilteredElementCollector.OfClass() and filter something out at start, e.g. using the WhereIsElementType or WhereIsNotElementType, or create such two separate lists (one for element types and the other for non) for later use.
Revit Family Organizer can organize various Revit family forms such as Family Files (.RFA), Opened Families, Loaded Families, Project Families, System Families, Nested Families, Family Types, and Family Materials in many different and good ways.