gpt4 book ai didi

c# - 为什么不能将 new[] {AnonymousType, AnonymousType} 强制转换为 IEnumerable?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:07 27 4
gpt4 key购买 nike

我有一个声明为匿名类型的数组:

var list = new[] 
{
new {Name = "A", Age = 10},
new {Name = "B", Age = 15}
}

现在list继承自Array类型,实现了IEnumerable。为什么以下失败:

Convert.ChangeType(list, typeof(IEnumerable));

这也失败了:

Convert.ChangeType(list, typeof(Array));

亲切的问候,

最佳答案

Convert.ChangeType 方法需要实现 IConvertible - 本质上是如何从源类型转换为目标类型的声明。 System.Array 未实现 IConvertible 接口(interface)。

您尝试做的是从一种类型转换为另一种类型,(IEnumerable)list 工作得很好。

编辑:

正如 Jon 所说,此处的转换是隐式的,因此对 IEnumerable 的简单赋值(即隐式转换)也有效。

关于c# - 为什么不能将 new[] {AnonymousType, AnonymousType} 强制转换为 IEnumerable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1585636/

27 4 0