티스토리 뷰
[질문 – C++에서의 CList를 C#에서 어떻게 구현하는가]
이번에 C#을 다루게 되었는데, MFC로 구현된 것을 C#으로 바꾸고 있습니다.
중간에 지금 막혀서 그런데 많은 답변 부탁드립니다;;; ㅠㅠ;;
MFC의 CList<int, int&> 를 C#에서 List<int> 으로 하는 표현방식이 맞는지 모르겟네요 오류는 나지않지만.....
그리고 MFC의 CList 클래스 GetHeadPosition(), GetNext() 를 C#으로 매칭시키는 함수가 궁금합니다;;;
아니면,,,, 구현하는 방법이라도 답변부탁드립니다;;;; ㅎㅎ
[답변]
List를 접근하는 방법은
열거자를 이용하는방법, 인덱스로 접근하는 방법, foreach문을 통해 접근하는 방법등이 있다.
간단한 예제를 작성해 보았다.
다음 3가지의 경우는 모두 같은 출력물을 가지게 된다.
List<int> listInt = new List<int>(); for (int i = 0; i < 10; i++) { listInt.Add(i); } #region 열거자를 이용하는 방법 // List의 열거자를 얻음 IEnumerator etr = listInt.GetEnumerator(); // 열거자를 컬렉션의 다음위치로 이동시킴 (없다면 false) while (etr.MoveNext()) { int val = (int)etr.Current; Console.WriteLine(val); } etr.Reset(); // 컬렉션의 첫번째 요소 앞의 초기 위치에 열거자를 설정 #endregion #region 열거자를 이용하지 않는 방법 #1 - 인덱스를 이용 for (int i = 0; i < listInt.Count; i++) { // 컬렉션을 인덱스로 접근 int val = listInt[i]; Console.WriteLine(val); } #endregion #region 열거자를 이용하지 않는 방법 #2 - foreach문을 이용 foreach (int val in listInt) { Console.WriteLine(val); } #endregion |