Вы всегда можете обернуть его, и, кроме того, чтобы быть «доступным для доступа», вам нужен только метод «GetEnumerator» с правильной подписью.
class EnumerableAdapter
{
ExternalSillyClass _target;
public EnumerableAdapter(ExternalSillyClass target)
{
_target = target;
}
public IEnumerable GetEnumerator(){ return _target.SomeMethodThatGivesAnEnumerator(); }
}