2010-07-29 74 views

回答

12

想你會在這裏找到答案:

Puzzling Enumerable.Cast InvalidCastException

的最後一部分,在編輯:

Cast<T>()IEnumerable而不是 IEnumerable<T>的擴展方法。這意味着,由 每個時間值上哪裏它正在投,它已經被 盒裝回一個System.Object

+1

感謝馬丁點 。那很有意思。因此,無論如何,對於內在的拳擊表現的懲罰,大概應該避免投注。我很驚訝,MSDN在任何地方都沒有提到(無論如何我都能找到)。 – fearofawhackplanet 2010-07-29 11:46:30

+5

'Cast '僅用於使IEnumerable達到'IEnumerable '的水平,其中定義了所有其他LINQ運算符。把一個'IEnumerable '並將其轉換爲'IEnumerable '是一個投影,它由'Select'完成。 「IEnumerable 」上的'Cast'甚至可能僅僅是因爲'IEnumerable '從IEnumerable繼承 - 沒有其他原因。 – 2010-07-29 13:17:08