ConverAll 的正确用法是什么?它会将一种类型转换为另一种类型吗?
喜欢
List<int> intList = new List<int>();
intList.Add(10);
intList.Add(20);
intList.Add(30);
intList.Add(33);
var query= intList.ConvertAll(x=>(double)x);
为此我可以使用 cast 或 OfType<>。
最佳答案
ConvertAll
不是扩展方法,它是 List<T>
上的真实方法本身。
它返回一个包含转换后元素的新列表。所以在你的例子中,query
变量实际上不是一个查询,它是一个 List<double>
.
Cast
和 OfType
是在 IEnumerable
上运行的扩展方法并返回 IEnumerable<T>
.但是它们不适合您声明的目的:Cast
可以转换引用类型但不能转换值类型,只能将它们拆箱。 OfType
不执行任何转换,它只返回任何已经属于指定类型的元素。
关于c# - 扩展方法 ConvertAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913955/