이가 바보 같은 질문 일 수도 있지만 ... 은 C#에서 두 코드를 재 그룹화하는 하나의 루프보다 비용이 많이 드는 두 개의 루프입니까?
내 코드를 리팩토링, 나는에 대한 답변을 찾을 수없는 질문을 함께했다 : 나는 객체MyDumyObject
포함 된 문자열 속성이 가정
을 Foo
및 Bar
나는 또한 MyDumyCollection
라는 MyDumyObject
의 컬렉션이 가정
는
입니다foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
}
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Bar = "baaaaaaaar";
}
에 해당
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
obj.Bar = "baaaaaaaar";
}
?
나는 추측하고있다 : no 하지만 C#과 C# 컴파일러가 이전에 한 번 이상 작동하는 방식으로기만 당했기 때문에 지금 내 가정과 조심스럽고 확인 또는 논박.
자회사 질문 :
이
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
}
// ....
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "foooooooooooooooooooooooo";
}
에 해당
foreach(MyDumyObject obj in MyDumyCollection)
{
obj.Foo = "fooooooooo";
// ....
obj.Foo = "foooooooooooooooooooooooo";
}
입니까?
정말 달라집니다. 대부분의 컬렉션은 내 경험으로는 꽤 작지만 항목이 수백만 개라면 두 번 이상 반복하는 편이 낫습니다. 게다가 나는 단일 루프가 * 더 * 읽기 쉽고 덜 중요하다고 생각한다. – LukeH
@LukeH : 전적으로 동의합니다 – BrokenGlass
이 질문에 대한 답변은 완벽하게 고맙습니다. 나는 많은 항목 (1000 개 정도)을 가지고 있지 않으므로 큰 오버 헤드가없고 루프 안의 코드는 비용이 많이 든다. 따라서 필자의 경우에는 하나 또는 두 개의 루프가 차이를 내지 않을 것이라고 말할 것이다. 나는 가독성을 위해 해결할 것이다 :) – David