6
當試圖回答this question,我發現了以下內容:鑄造和LINQ演員<T>()
string s = "test";
var result1 = s.Select(c => (ushort)c); // works fine
var result2 = s.Cast<ushort>(); // throws an invalid cast exception
爲什麼Cast<T>()
失敗嗎?有什麼不同?
感謝馬丁點 。那很有意思。因此,無論如何,對於內在的拳擊表現的懲罰,大概應該避免投注。我很驚訝,MSDN在任何地方都沒有提到(無論如何我都能找到)。 –
fearofawhackplanet
2010-07-29 11:46:30
'Cast'僅用於使IEnumerable達到'IEnumerable '的水平,其中定義了所有其他LINQ運算符。把一個'IEnumerable '並將其轉換爲'IEnumerable '是一個投影,它由'Select'完成。 「IEnumerable 」上的'Cast'甚至可能僅僅是因爲'IEnumerable '從IEnumerable繼承 - 沒有其他原因。 –
2010-07-29 13:17:08