:
for(int i = 0; i < test.Count; i++) {
test[i] = String.Format("Hello {0}", test[i]);
}
필요가 없습니다 공상합니다. LINQ를 남용 할 필요가 없습니다. 그냥 간단하게 유지하십시오.
이 넘어 한 단계 이동 등과 같은 확장 메서드를 만들 수 있습니다
static class ListExtensions {
public static void AlterList<T>(this List<T> list, Func<T, T> selector) {
for(int index = 0; index < list.Count; index++) {
list[index] = selector(list[index]);
}
}
}
사용법 :
test.AlterList(s => String.Format("Hello {0}", s));
Select
은 투사이고 정말 상황 곳 거기에 사용하기위한 것입니다 부작용이 없다. 목록의 항목을 매우 분명하게 조작하면 부작용이 있습니다. 사실, 라인
test.Select(s => String.Format("Hello {0}", s));
결국 투사를 생산하는 이상 열거 할 수있는 IEnumerable<string>
작성을 제외한 아무것도하지 않습니다.
덕분에, 첫 번째는 나를 위해 성공했다. –
@Nyla Pareska : 그 버전은 사용자의 의도 인 것으로 보이는 원래 컬렉션을 수정하지 않습니다 ("하지만 목록의 이름은 조정하지 않습니다"). 그렇게하고 싶다면 내 대답에서 제공 한 확장 메서드를 참조하십시오. – jason