这是此问题的后续措施: How to replace an element in a Collection
我找到了针对集合中某些问题的替代方法。但是,这并不能让我清楚C#是否具有表达与C ++ foreach循环相同的功能:
for(auto &element : collection) {
// Yay, element is an actual reference to the object physically in the collection!
}
因此,我想将问题修改为一个一般情况:假设我有一个外部方法,每个引用都使用T
类型的对象:
void Foo<T>(ref T obj);
此方法的确切作用与之无关。
因此,我想通过实际集合的引用获取每个元素,并将其放入此方法中。
void ApplyFoo<T>(ICollection<T> collection)
{
// Iterate over every element and pass it to Foo as a reference.
}
在C#中有一种简单的方法吗?也许我不知道一些语法糖?
如果没有任何理由?似乎实际上是在限制语言的表达能力。
答案 0 :(得分:-2)
目前,尚无法通过语言或框架API来做到这一点。正如我在其他答案中提到的那样,您将必须具有一个包装器引用类型,该包装器引用类型可以保存该值并允许您对其进行更改。