假設我有一個IEnumerable<int>
,我希望這些轉換成它們的ASCII等效字符。IEnumerable.Cast()vs cast在IEnumerable.Select()
對於一個整數,它只是(char)i
,所以總是有collection.Select(i => (char)i)
,但我認爲使用collection.Cast()
會更簡潔。
任何人都可以解釋爲什麼我得到InvalidCastException
當我使用collection.Cast<char>()
但不是collection.Select(i => (char)i)
?
編輯:有趣的是,當我打電話給collection.OfType<char>()
時,我得到一個空集。
謝謝!有點反直覺,但它是有道理的 – hehewaffles 2012-03-26 03:34:58
連接到Jon Skeet的博客似乎被打破。這是一個替代:http://edulinq.googlecode.com/hg/posts/33-CastAndOfType.html – 2014-07-22 23:38:14
@TylerGill,這個鏈接也被打破 – 3per 2016-10-26 02:50:41