这种问题的模式(最佳实践)是什么——修改集合中的元素(值)?
条件:
- 集合的大小没有改变(没有元素被删除或添加)
- 修改到位
在 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);
}
}
一个更实用的替代方法是创建一个方法,该方法返回一个新集合,其中包含所需的“修改后的”数据——但这完全取决于您想要做什么。
