My own solution:
protected Coroutine WhenAll(ICollection coroutines)
{
return StartCoroutine(WhenAllInternal(coroutines)); // coroutines.GetEnumerator() does not work for some reason.
}
private IEnumerator WhenAllInternal(ICollection coroutines)
{
foreach (Coroutine c in coroutines)
{
yield return c;
}
}