В чем преимущество .Cast перед .Select?

У меня есть тип с неявными операторами преобразования в большинство базовых типов, и я пытался использовать .Cast () в коллекции этого типа, который не удалось. По мере того, как я копался в этом, я заметил, что приведение через как не использует неявное или явное преобразование и просто не компилируется, поэтому я предполагаю, что здесь падает .Cast . Итак, это не удается

var enumerable = source.Cast<string>();

, но это работает

var enumerable = source.Select(x => (string)x);

Так в чем же преимущество Cast? Конечно, это на пару символов короче, но кажется более ограниченным. Если его можно использовать для преобразования, есть ли какие-то преимущества, кроме более компактного синтаксиса?

35
задан Arne Claassen 20 August 2011 в 14:53
поделиться