Пытаясь ответить на этот вопрос , я обнаружил следующее:
string s = "test";
var result1 = s.Select(c => (ushort)c); // works fine
var result2 = s.Cast<ushort>(); // throws an invalid cast exception
Почему Cast<T>()
терпит неудачу здесь? Какая разница?