Это называется ковариацией. Кажется очевидным, что общий список производных объектов (окружностей) должен легко преобразовываться в общий список базовых объектов (фигур), это то, что большинство людей ожидают от работы, и удивляются, когда этого не происходит.
Однако, если вы когда-либо работали с ними над отражением, обобщения не так просты, как кажутся, что усложняет код для этого. Я уверен, что есть также много теоретических или даже веских причин, почему это не было поддержано через NET v3.5
Но в .NET 4.0 добавлена поддержка ковариации: http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx
До тех пор, пока вы не обновитесь до этого, вам придется делать это сложным способом (выполните .ToArray () в производном списке объектов, передайте его в конструктор списка базовых объектов или что-то подобное)