Wywołanie jest niejednoznacznym błędem przy użyciu Linq

Przede wszystkim przepraszam za ekscesywne ogólne klasy nazw. Mój pracodawca jest paranoikiem i wiem na pewno, że wędruje po tej stronie. Ok, więc mam ten kod:

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

gdzie otherEntity.OneCollection jest ISet. ISet to klasa kolekcji NHibernate, która implementuje IEnumerable. Jeśli spróbuję skompilować ten kod, otrzymuję ten błąd:

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)'    

Ale jeśli usunę używanie System.Linq na początku klasy i zmienię kod na ten:

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

kompiluje się i działa. (? operator, aby sprawdzić, czy OneCollection ma elementy usunięte ze względu na przejrzystość)

Czy ktoś mógłby mi wyjaśnić ten błąd?

W przypadku, gdy jest to istotne: używam Visual Studio 2008, kierując do .NET Framework 3.5 i używając ReSharper 5.1.

UWAGA.- Edytowane w celu wyjaśnienia, który konkretnie IEnumerable jest zbiorem, przepraszam za to.

questionAnswers(2)

yourAnswerToTheQuestion