gre*_*man 1 c# collections iterator design-patterns enumerator
这种问题的模式(最佳实践)是什么 - 修改集合中的元素(值)?
条件:
在C++中,它很简单,很好,我只是通过一个集合迭代并更改了元素.但是在C#中迭代(使用枚举器)是只读操作(就C++而言,只有const_iterator可用).
那么,如何在C#中做到这一点?
例如:具有"1,2,3,4"修饰的序列将其改变为"1,2,8,9"而不是"1,2,3"或"1,2,3,4,5".
通常你会选择索引:
for (int i = 0; i < foo.Length; i++)
{
if (ShouldChange(foo[i]))
{
foo[i] = GetNewValue(i);
}
}
Run Code Online (Sandbox Code Playgroud)
更实用的替代方法是创建一个方法,该方法返回包含所需"修改"数据的新集合 - 这一切都取决于您想要做什么.
归档时间: |
|
查看次数: |
266 次 |
最近记录: |