두 번째 방법은 배열에서 전체 튜플을 복사하고 수정한 다음 다시 원본으로 복사하는 방법이다.
for (int i = 0; i < array.Length; i++)
{
var tuple = array[i];
tuple.x++;
tuple.y *= 2;
array[i] = tuple;
}
두 가지 예제 중 어느 것도 그리 매력적이지 않다. 참조 지역 변수를 이용한 접근 방법은 루프의 본문 내에서 배열 요소를 마치 일반 변수를 다루듯 사용할 수 있다는 장점이 있다.
참조 지역 변수를 필드와 함께 사용할 수도 있다. 정적 필드와 함께 참조 지역 변수를 사용하는 경우의 동작은 비교적 예측 가능하지만, 인스턴스 필드와 함께 참조 지역 변수를 사용하는 경우에는 그 동작 방식에 다소 놀랄 수도 있다. 다음 예제를 살펴보자. 이 예제에서는 특정 인스턴스를 참조하는 obj라는 변수를 이용하여 인스턴스 필드에 대한 참조 지역 변수를 생성했다. 그리고 새로운 인스턴스를 생성한 후 obj 변수가 이 인스턴스를 참조하도록 변경했다.