fea*_*net 6 linq extension-methods linq-to-objects casting
在尝试回答这个问题时,我发现了以下内容:
string s = "test";
var result1 = s.Select(c => (ushort)c); // works fine
var result2 = s.Cast<ushort>(); // throws an invalid cast exception
Run Code Online (Sandbox Code Playgroud)
为什么在Cast<T>()这里失败?有什么不同?
Mar*_*sen 12
认为你会在这里找到答案:
令人费解的Enumerable.Cast InvalidCastException
最后一部分,在编辑下:
Cast<T>()是一种扩展方法,IEnumerable而不是IEnumerable<T>.这意味着,当每个值到达它所投射的点时,它已被装箱回到aSystem.Object