В C#, почему объект List<string> не может быть сохранен в переменной List<object>

Если вы используете .NET generics 3.5, обратите внимание на .net-framework метод Enumerable.Cast. Это c# метод расширения, поэтому generics вы можете вызывать его непосредственно generic в списке.

List sl = new List();
IEnumerable ol;
ol = sl.Cast();

Это не совсем то, что generics вы просили, но должно сработать.

Редактировать: как c#.net отметил Zooba, вы можете visual-c# вызвать ol.ToList(), чтобы type-safety получить список

c#

.net

generics

covariance

type-safety

2022-07-12T00:41:19+00:00