Chamada é um erro ambíguo usando o Linq

Primeiro de tudo, desculpe por classes de nomes genéricos excesivos. Meu empregador é paranóico e tenho certeza de que ele vaga este site. Ok, então eu tenho esse código:

var fooObj = new MyFooClass()
{
    fooField1 = MyEnum.Value3, 
    fooField2 = false,
    fooField3 = false,
    fooField4 = otherEntity.OneCollection.ElementAt(0) as MyBarClass
}

onde otherEntity.OneCollection é um ISet. ISet é uma classe de coleção NHibernate que implementa IEnumerable. Se eu tentar compilar este código, recebo este erro:

Error 2     The call is ambiguous between the following methods or properties: 
'System.Linq.Enumerable.ElementAt<MyFirm.Blah.Blah.ClassyClass>    (System.Collections.Generic.IEnumerable<MyFirm.Blah.Blah.ClassyClass>, int)'
and 
'System.Linq.Enumerable.ElementAt<MyFirm.Blah.Blah.ClassyClass>(System.Collections.Generic.IEnumerable<MyFirm.Blah.Blah.ClassyClass>, int)'    

Mas se eu remover o usando System.Linq no início da classe e alterar o código para isso:

var fooObj = new MyFooClass()
{
    fooField1 = MyEnum.Value3, 
    fooField2 = false,
    fooField3 = false,
    fooField4 = System.Linq.Enumerable
                     .ElementAt(otherEntity.OneCollection, 0) as MyBarClass
}

compila e trabalha. (? operador para verificar se OneCollection tem elementos removidos por motivos de clareza)

Alguém poderia explicar esse erro para mim?

Caso seja relevante: estou usando o Visual Studio 2008, visando o .NET Framework 3.5 e usando o ReSharper 5.1.

NOTA.- Editado para esclarecer qual concreto IEnumerable é a coleção, desculpe por isso.

questionAnswers(2)

yourAnswerToTheQuestion