以下代码提供了InvalidCast
例外
int newValue = new List<decimal>() { 6m }.Cast<int>().FirstOrDefault();
即使decimal
可以投放int
,为什么不能在列表中完成?
编辑:
为了澄清这个问题,我想知道为什么等式的演员部分会引发异常。刚刚运行new List<decimal>() { 6m }.Cast<int>().ToList()
也会产生InvalidCast
异常
答案 0 :(得分:5)
你需要:
new List<decimal>() { 6m}.Select(d => (int)d).ToList<int>();
或
new List<decimal>() { 6m}.ConvertAll(d => (int)d);
将Select
与任何IEnumerable
一起使用,ConvertAll
仅适用于List
.Cast
,就好像它们是强类型一样。
感谢@hvd纠正我