2010-12-13 3 views
2

Можно создать дубликат:
Puzzling Enumerable.Cast InvalidCastExceptionКастинг IEnumerable <int> к IEnumerable <long> терпит неудачу

Почему

List<long> numbers = Enumerable.Range(1, 9999).Cast<long>().ToList(); 

потерпеть неудачу с InvalidCastException?

+0

Дубликат [Пазл Enumerable.Cast InvalidCastException] (http://stackoverflow.com/questions/445471/puzzling-enumerable-cast- invalidcastexception) – jason

+0

Это дубликат [вопроса] (http://stackoverflow.com/questions/445471/puzzling-enumerable-cast-invalidcastexception), который я ранее задавал. – jason

ответ

6

Смотрите этот ответ: Puzzling Enumerable.Cast InvalidCastException

В заключение, Cast() работает на необщего IEnumerable, который коробки каждый ИНТ как объект. Таким образом, когда вызывается Cast, он может обрабатывать только элементы как объекты типа Object, которые нельзя отнести к длине.

Решение использовать Select для выполнения явного приведения:

var numbers = Enumerable.Range(1,9999).Select(i=>(long)i).ToList(); 
Смежные вопросы