Q:

Casting array of objects (which implement interface IFoo) to IFoo[] in C#

class A : IFoo
{
}

...

A[] arrayOfA = new A[10];

if(arrayOfA is IFoo[]) 
{
    // this is not called
}

Q1: Why is arrayOfA not an array of IFoos?
Q2: Why can't I cast arrayOfA to IFoo[]?

A:

arrayOfA is IFoo[]. 
There must be something else wrong with your program.
You seem to have mocked up some code to show the problem, but in fact your code (see below) works as you expect. Try updating this question with the real code - or as close to real as you can - and we can take another look.
using System;
public class oink {
    public static void Main() {
        A[] aOa = new A[10];

        if (aOa is IFoo[]) { Console.WriteLine("aOa is IFoo[]"); }

    }
    public interface IFoo {}
    public class A : IFoo {}
}

PS D:\> csc test.cs
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.1
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.

PS D:\> D:\test.exe
aOa is IFoo[]
PS D:\>

