Microsoft MVP성태의 닷넷 이야기
foreach 문으로 컬렉션을 열거할 때 궁금한 점 [링크 복사], [링크+제목 복사],
조회: 14396
글쓴 사람
김기헌
홈페이지
첨부 파일
 

안녕하세요 선생님
예를 들어 foreach문을 사용할 때

List<T> list = new List<T>();

foreach (T t in list) 이렇게 사용하는 방법이 아닌

foreach (T t in list.ToList())
이렇게 foreach문을 사용하게 될 때 저 ToList() 메소드 내부에서 생성하는 개체는 반복문에서 한 번만 평가되고
동일한 개체를 열거하게 되는 건지 아니면 컬렉션을 열거할 때마다 새로운 개체를 생성하게 되는 건지 궁금증이 생겨서요..

foreach가 Current, MoveNext, Reset을 사용하는 것은 알고 있지만 내부에서 어떻게 처리되는 건지는 알기가 힘들어 선생님께 질문드립니다
항상 감사합니다








[최초 등록일: ]
[최종 수정일: 8/1/2022]


비밀번호

댓글 작성자
 



2022-08-01 06시17분
foreach...in...에서 in 다음에 오는 코드는 최초 루프 진입 시 한 번만 실행됩니다. 대충 아래와 같은 식으로 바뀝니다.

IEnumerable<T> e = list.ToList();

while (e.MoveNext())
{
    T current = e.Current;
    ... foreach 내부의 코드 ...
}
정성태
2022-08-01 07시09분
[김기헌] 감사합니다 선생님^^
[guest]

... 76  77  78  79  80  81  82  83  84  85  86  87  [88]  89  90  ...
NoWriterDateCnt.TitleFile(s)
262정성태11/10/200512516    답변글 [답변]: 스마트 질문좀 할께요. 죄송합니다. [1]
264Yuri11/11/200512158        답변글 [답변]: [답변]: 스마트 질문좀 할께요. 죄송합니다. [1]
266유리11/15/200512881            답변글 [답변]: [답변]: [답변]: 스마트 질문좀 할께요. 죄송합니다. [2]
257차우차우10/28/200512471스마트 클라이언드 에서.. 수정하면 안돼는 문제? [1]파일 다운로드1
254박상호10/26/200512494스마트 클라이언트관련해서 질문이 있습니다. [1]
253Lee ...10/27/200512132안녕하세요. 바쁘신데 이렇게 질문드려서 죄송합니다. 스마트 클라이언트에 관한 질문입니다. [2]
252홍영진10/26/200512442SmartClient 배포시 닷넷프레임워크배포
255정성태10/27/200513183    답변글 [답변]: SmartClient 배포시 닷넷프레임워크배포
249ROY10/23/200512517X-internet & Peer to Peer
251정성태10/24/200513175    답변글 [답변]: X-internet & Peer to Peer [1]
246뽀송이10/17/200512931스마트클라이언트 개념에 대한 질문입니다.(Connection Pool사용 가능?) [2]
247정성태10/17/200512991    답변글 [답변]: 스마트클라이언트 개념에 대한 질문입니다.(Connection Pool사용 가능?)
248뽀송이10/17/200513257        답변글 [답변]: [답변]: 스마트클라이언트 개념에 대한 질문입니다.(DB연동을 웹서비스로 하면 문제는?) [3]
245오혁천10/12/200513609스마트 클라이언트에서.. Socket 함수 사용 [1]
244정우기10/11/200512909스마트클라이언드 권한관련 콜솔 프로그램 에 관하여 문의좀..ㅜ.,ㅜ [1]
242이용희10/7/200512947스마트클라이언트 배포시 .NET Framework 버전에 관한 문제
243정성태10/10/200512883    답변글 [답변]: 스마트클라이언트 배포 시 .NET Framework 버전에 관한 문제 [3]
241김재옥10/5/200512610smart client에서의 Socket 함수 사용 [1]
240이형배9/15/200512288스마트클라이언트배우고 싶어여... [1]
239장강현9/14/200517177SmartClient에서의 배포 문제에 대해 [2]
238이순원9/13/200512260디버깅 할때 native 옵션껐는데두 너무 느려요.. [1]
236코디9/12/200512375[질문]런타임 보안 배포 [1]
237코디9/13/200512873    답변글 [재질문]: [질문]런타임 보안 배포 [1]파일 다운로드1
235임은선9/9/200514946스마트 클라이언트 배포시 환경파일인 app.config는 어떻게 배포 해야하나요...? [2]
234임은선9/7/200513704스마트 클라이언트 보안문제관련해서 질문이 있습니다.. [2]
233이한욱8/31/200521880가상 시리얼 포트(Virtual COM Port) 만들기 [1]
... 76  77  78  79  80  81  82  83  84  85  86  87  [88]  89  90  ...