当前位置: 代码迷 >> C# >> 能否通过枚举器回修改元素的值
  详细解决方案

能否通过枚举器回修改元素的值

热度:51   发布时间:2016-05-05 03:22:45.0
能否通过枚举器来修改元素的值?
好像枚举器只是用来遍历用的,返回的引用是一个引用本身的拷贝。
如果我用容器存储引用类型,能否使用枚举器来使得某些元素做改变呢? 枚举器并不等于迭代器吧
------解决思路----------------------
没看懂你的意思。先简单地试着回答你的字面上的问题:

1. 迭代器返回的是一个 IEnumerable 对象,是容器而不是容器里的对象。迭代器是一个语法糖,或者说编译器根据它的声明来自动生成代码。

2. 有人翻译到中文为“枚举器”,我是觉得“无所谓、可以理解的”。但是可能别人会觉得用词不当。

3. 迭代器用来枚举对象(返回),至于说用对象给其它引用变量赋值,那还是要看你的具体代码。跟枚举功能无关。
------解决思路----------------------
张三、李四、王二麻子,这就是枚举
如过
            int[] a = { 1, 2, 3 };
            a[1] = 5;
            Console.WriteLine(string.Join(",", a));
打印的不是 1,5,3 的话,那么请把C#丢到爪哇国去
若如你所说:枚举返回的是副本,那么我们如何去改变数组成员的值呢?

IEnumerator 可枚举
IEnumerable 可用 foreach 枚举(简单的迭代)

不管里面是什么,实现了 IEnumerator 就可以 1、2、3、4....张三、李四、王二麻子 逐个的访问
实现了 IEnumerable 就可以自动化访问每一个成员,连名字都不需要知道

语言的表述方式不是重点,关键在于其本质
就如我们在吸纳西方先进科学技术时需要掌握英语一样,欧美人不也在学习中文,以期融入汉文化为主导的社会吗

  相关解决方案