使用ArrayList ArrayList array3 = new ArrayList(); string str = string.Join(" ", array3.ToArray()); 使用List List<string> list = new List<string>(); string str = string.Join(" ",list);
不知道为什么,查看元数据也没找到,求高手指点
我纠结的地方是为什么ArrayList需要调用ToArray()方法,而List不需要
什么意思
string str = string.Join(" ", array3.ToArray());
string str = string.Join(" ",list);
为什么ArrayList对象需要调用ToArray()方法,而List对象不需要
@轻狂の书生:
看一下参数不就知道了吗...
.net4.0以下的 需要的是数组,.net4.0 增加了 IEnumerable<T>,list 是IEnumerable<T>, 就是用的这个4.0的。
你的 ArrayList 是一个动态数组类又不是数组,又不是IEnumerable<T>,ToArray()才返回数组。
没有找到是什么意思?
没找到他俩在这方面的区别
我纠结的地方是为什么ArrayList需要调用ToArray()方法,而List不需要?
我也没进去看过List<T>泛型的定义,如果string.join(),只能接受Array参数的话,那肯定在定义List泛型的地方肯定有个隐式的转换,让List<T>能隐式的转化成T[]。
建议你进去reflector看看。
没什么高深的东西在这边,因为.net里类型转化的除了协变逆变,就隐式转化了。