Вызов является неоднозначной ошибкой с использованием Linq

Прежде всего, извините за исключительные родовые классы имен. Мой работодатель параноик, и я точно знаю, что он бродит по этому сайту. Итак, у меня есть этот код:

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

где otherEntity.OneCollection - это ISet. ISet - это класс коллекции NHibernate, который реализует IEnumerable. Если я пытаюсь скомпилировать этот код, я получаю эту ошибку:

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

Но если я удаляю использование System.Linq в начале класса и изменяю код так:

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

он компилируется и работает. (оператор для проверки, если OneCollection имеет элементы, удаленные для ясности)

Может ли кто-нибудь объяснить мне эту ошибку?

В случае уместно: я 'Я использую Visual Studio 2008, ориентируясь на .NET Framework 3.5 и используя ReSharper 5.1.

ПРИМЕЧАНИЕ. - Отредактировано, чтобы уточнить, какой конкретный IEnumerable является коллекцией, извините за это.

Ответы на вопрос(2)

Ваш ответ на вопрос