扩展方法ConvertAll

Ree*_*own 2 c# extension-methods

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);
Run Code Online (Sandbox Code Playgroud)

为此我可以使用cast或OfType <>.

Luk*_*keH 7

ConvertAll它不是一种扩展方法,它List<T>本身就是一种真正的方法.

它返回一个包含已转换元素的新列表.所以在你的例子中,query变量实际上不是一个查询,它是一个List<double>.

Cast并且操作和返回的扩展方法.但是它们不适合您声明的目的:可以转换引用类型但不能转换值类型,只能将它们取消装箱.不执行任何转换,它只返回已经指定类型的任何元素.OfType IEnumerableIEnumerable<T>CastOfType