You can create a B[]
from baseClassList
using Linq pretty easily but it won't be as simple as a cast.
B[] derivedClassList = baseClassList.OfType<B>().ToArray();
EDIT: Alternatively - if you want to convert the contents of the array I'd recommend a copy-constructor.
public B(A source)
{
Name = source.name;
Id = source.id;
}
Then you can convert like so:
B[] derivedClassList = baseClassList.Select(e => e is B ? (B)e : new B(e)).ToArray();