将列表<T>或数组作为IEnumerable类型的参数传递

mar*_*rky -2 c# collections

如果我这样做,我仍然可以保证原始收藏中的订单吗?

dca*_*tro 5

是.您所做的只是对接口的隐式转换 - 它对底层对象完全没有影响.

编辑

实际上,将"a"对象转换为其中一个接口可能会产生副作用.当输入到接口时,值类型被加框.但是因为List<T>和数组是引用类型,所以没有副作用.

  • 究竟.`IEnumerable`是一个接口,它没有实现代码 - 因此,没有保证.接口只保证一件事和一件事 - 底层对象将实现这些方法.例如,`IEnumerable`只能保证任何底层对象都有自己的`GetEnumerator`方法实现. (3认同)