.NET-IList和List的Reverse陷阱

.NET提供的集合命名空间中,有个常用的列表list 这个数据结构,在使用过程中,遇到了一个陷阱,也是暂时没想明白的问题,在这里备忘一下。

请看下面测试

IList<int> rtn2 = new List<int>() {0, 4, 9};
            rtn2.Reverse();

上面执行反转后,rtn2的顺序未发生任何变动。

只能将rtn2声明为List 才能执行反转。

后记

经过github上给Corefx库提这个issue,才发现这是一个用法的问题。具体说来,List.Reverse 这个Reverse就地反转,对于IList 继承于IEnumerable.Reverse 返回的值才是反转后的元素,参数的值不会变动。

你可能感兴趣的:(.NET基础,.NET开发,.net,列表,list,reverse)