在C#中,Cast<T>
是一个扩展方法,用于将一个类型的集合转换为另一个类型的集合。在这个问题中,我们要讨论为什么Cast<double>()
不能在IEnumerable<int>
上工作。
原因是Cast<T>
方法仅用于引用类型的转换,而double
是一个值类型。在这种情况下,我们需要使用Select
方法进行转换。
以下是一个示例:
IEnumerable<int> intList = new List<int> { 1, 2, 3 };
IEnumerable<double> doubleList = intList.Select(x => (double)x);
在这个示例中,我们使用Select
方法将IEnumerable<int>
转换为IEnumerable<double>
。这是一个完整的答案,因为它解释了为什么Cast<double>()
不能在IEnumerable<int>
上工作,并提供了一个可以使用的解决方案。
领取专属 10元无门槛券
手把手带您无忧上云