C# 둘중 어느게 덜 부담이 될까요?

lkiwi5001의 이미지

한창 프로그래밍 공부하고있는 대학생 입니다.

현제 Value값이 객체 Client인 myDictionary가 하나 있습니다.
이 Client 객체에는 isOnline이란 변수가 bool 자료형으로 정의되어있습니다.

이때 제가 isOnline == true인 Client들만 foreach를 사용하여 반복문을 돌리고 싶은데

1.
foreach(var c in myDictionary){
if(c.isOnline == true)
{
//여기 코드 작성

2.
새로운 리스트 onlineClients를 만들어서

myDictionary에 새로운 client가 추가될떄 isOnline은 항상 true가 되므로
isOnline이 false가 될때 onlineClient에서 또한 삭제한 뒤

foreach(var c in onlineClients){
//여기 코드 작성

둘중에 어느게 더 나을지 모르겠습니다.

myDictionary에 들어갈 객체 수를 100~200정도로 생각하고 있는데
이 경우 어느게 덜 부담이 되는 프로그램일까요?

swish95의 이미지

부담이라는게 코드 쪽인가요? 아님 프로세스 부하? 를 이야기 하시는 건가요?
Client 객체의 변수 하나 접근하는건 둘중에 어떤 방식이라도 크게 차이가 없어 보입니다.

메모리를 생각하면 당연히 조금이라도 2번 방법이 많이 들거고
onlineClient 가 정확하게 관리되지 못하는 상황이 생기는 사이드 이펙트를 고려한다면
1번 방식이 좋지 않나 생각해봅니다.

------------------------------------------------------------
ProgrammingHolic