У меня есть тип с неявными операторами преобразования для большинства базовых типов и попытался использовать .Cast<string>()
в коллекции этого типа, которая не удалась. Когда я впился в него, я заметил, что кастинг через as
не использует неявное или явное преобразование и просто не будет компилироваться, поэтому я предполагаю, что там, где .Cast
падает. Таким образом, это не работает
var enumerable = source.Cast<string>();
но это работает
var enumerable = source.Select(x => (string)x);
Итак, какое преимущество Cast? Конечно, это несколько символов короче, но кажется намного более ограниченным. Если его можно использовать для преобразования, есть ли какое-то преимущество, кроме более компактного синтаксиса?