为什么不能在C#中为通用的对象集合分配通用的字符串集合

时间:2017-11-18 10:31:12

标签: c# arrays generics

我在C#中有以下示例代码,它不符合我的预期。我的期望是派生类型被隐式转换为较少的派生类型,结果是array scenario code而不是generic collections scenario code

由于字符串类型是由C#隐式转换为对象类型的,因此下面的代码应该适用于两种情况但不适用。

我将数组或字符串集合分配给下面代码中的数组或对象集合。

问题: 为什么泛型集合在下面的代码中的行为不像数组?

此代码的jsfiddle位于C# code for this question

C#代码

//arrays scenario
object[] objs = new object[3];
string[] strs = new string[] {"a","b","c"};
objs = strs;//THIS WORKS

//Generic collections scenario
List<object> objects = new List<object>();
List<string> strings =  new List<string>{"a","b","c"};
objects = strings; //BUT this does not work

0 个答案:

没有答案