Явно преобразовывать (закастовать) обобщенный тип в опредленный тип - нельзя.
```
wrappedCollection - ссылочный тип
```
Код ниже будет работать не будет:
```csharp
var castedWDict = (WList<int>) wrappedCollection;
```
Выдается ошибка (при компиляции)
```
Cannot cast expression of type 'WList<TKey>' to type 'WList<int>'
```
Однако при таком кастинге ошибки нет (при компиляции)
```csharp
var fff = (ISomeInterface<int>) wrappedCollection
```
Вот так тоже нет ошибки (при компиляции)
```csharp
var castedWDict = wrappedCollection as WList<int>;
```
Почему?
Олег говорит, что это просто так задизайнили c#