c# - 扩展方法 ConvertAll

标签 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);

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

最佳答案

ConvertAll 不是扩展方法,它是 List<T> 上的真实方法本身。

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

Cast OfType IEnumerable 上运行的扩展方法并返回 IEnumerable<T> .但是它们不适合您声明的目的:Cast可以转换引用类型但不能转换值类型,只能将它们拆箱。 OfType不执行任何转换,它只返回任何已经属于指定类型的元素。

关于c# - 扩展方法 ConvertAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913955/

相关文章:

c# - 下拉列表选择的项目文本总是返回第一个项目文本

c# - 以编程方式从 Twilio 中删除消息传递 Webhook

c# - 创建 Window 时出现 BindingExpression 路径错误(尚未绑定(bind) VM)

asp.net-mvc - MVC View 找不到我的扩展方法

swift - 键 : String value:Array in swift 的扩展字典

c# - 在 Xunit 集成测试中检索 ASP.NET Core 3.1 数据库上下文

c# - 如何在 C# 中使用 wkHtmltoPdf 从静态 html 文件生成 PDf 文件

c# - 根据某种标准从集合中选择最大的项目

c# - 无法将 lambda 表达式转换为类型 'string',因为它不是委托(delegate)类型

c# - 强类型属性访问的扩展方法