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

안녕하세요 선생님
예를 들어 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]

1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...
NoWriterDateCnt.TitleFile(s)
5625jaew...3/18/202213217c# 8.0 도서를 구입한 사람입니다. [1]
5624초보자3/17/202212477람다 캡처 관련 문의 [2]
5623한예지 donator3/15/202211712인터프리터 원리가 궁금합니다. [4]
5622김민아3/8/202212221const와 readonly의 명확한 차이가 이게 맞나요? [2]
5621장성욱3/8/202212334c# 로그 관련 질문 [1]
5620김민아3/7/202211686안녕하세요 비관리 객체를 반환하는 메소드 호출 시 궁금한 점이 있어서 질문드립니다 [2]
5619팡팡이3/3/202213624RSA 문의드립니다. [3]
5618김기헌3/2/202211613안녕하세요 생성자 옆에 this 키워드를 붙여 생성자를 여러 개 호출 시 질문드립니다 [2]
5617Edun2/25/202212409ArgumentOutOrRangeException에러 발생 [2]파일 다운로드1
5616csha...2/24/202211750readonly struct로 선언된 구조체를 특정 클래스에서 멤버변수로 가지는 경우 [1]
5615장성욱2/22/202215387SetThreadAffinityMask를 이용한 쓰레드 지정하는 방법에 대해 궁금합니다. [4]
5614민우2/22/202215028SSL 통신 문의 [6]
5613김인태2/22/202213051서버와 PC 간의 어플리케이션 성능 차이 [1]
5612팬입니다2/20/202211650Kastrel 서버 관련 [1]
5611차가워2/19/202212056stopWatch 늘어짐 문의 [3]
5610차가워2/18/202211957Stopwatch 늘어짐 문제 [1]
5609cs린이2/15/202211698c# 함수의 호출 방식에 대해 궁금합니다! [2]
5608지호2/10/202212693시작하세요 C# 8.0 중 제네릭타입의 IEnumerable [3]파일 다운로드1
5607이로운2/10/202211245안녕하세요. 궁금한게 있어서 질문드립니다. [1]
5605강성봉2/10/202212007TCP PSH flag 패킷 수신 에러 [1]
5604LW2/9/202212807VISUAL STUDIO 2019 ==> 2020 설치시 오류가 생겨서 문의드립니다. [3]
5603김진명2/9/202213684C# 10.0 출간은 언제쯤 계획하고 계신가요? [1]
5602신갑영2/8/202212303윈폼에 대해서 질문 드립니다. [1]
5601김인태2/4/202212250setup project 관련 [7]
5600itkim2/3/202214599윈도우 서버 계정 패스워드 인증 문의 [5]
5599레드골드2/3/202215152c#으로 ms word 제어 가능할까요? [6]
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...