C\#에서 foreach 순환 대비 for 순환 의 강점 과 약점

머리말
순환 문 구 는 많은 프로그래머 들 에 게 while,do...while,for,foreach 가 있 습 니 다.그리고 foreach 문 구 는 간결 하지만 장점 은 이것 뿐만 아니 라 효율 도 가장 높다 는 것 이다.본 고 는 C\#중 foreach 순환 대비 for 순환 의 장점 과 약점 에 대해 상세 하 게 말씀 드 리 겠 습 니 다.다음은 더 이상 말씀 드 리 지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
1.foreach 순환 의 장점
C\#foreach 키 워드 를 지원 합 니 다.foreach 는 집합 처리 와 배열 이 for 에 비해 다음 과 같은 몇 가지 장점 이 있 습 니 다.
1.foreach 문장 간결
2.효율 이 for 보다 높 습 니 다(C\#강 한 유형 검사 입 니 다.for 순환 은 배열 에 접근 할 때 색인 의 유효 치 를 검사 해 야 합 니 다)
3.배열 의 시작 색인 이 몇 인지 신경 쓰 지 않 아 도 됩 니 다.(많은 개발 자 들 이 다른 언어 에서 C\#로 이동 하기 때문에 일부 언어의 시작 색인 은 1 또는 0 일 수 있 습 니 다)
4.다 차원 배열(톱니 배열 포함 하지 않 음)을 처리 하 는 것 이 더욱 편리 합 니 다.코드 는 다음 과 같 습 니 다.

int[,] nVisited ={
  {1,2,3},
  {4,5,6},
  {7,8,9}
};
// Use "for" to loop two-dimension array(  for      )
Console.WriteLine("User 'for' to loop two-dimension array");
for (int i = 0; i < nVisited.GetLength(0); i++)
 for (int j = 0; j < nVisited.GetLength(1); j++)
   Console.Write(nVisited[i, j]);
   Console.WriteLine();

//Use "foreach" to loop two-dimension array(  foreach      )
Console.WriteLine("User 'foreach' to loop two-dimension array");
foreach (var item in nVisited)
Console.Write(item.ToString());

foreach 는 한 줄 코드 로 모든 요 소 를 순환 시 켰 고 for 순환 은 많은 줄 코드 가 필요 합 니 다.
주:foreach 처리 톱날 배열 은 foreach 순환 을 두 번 해 야 합 니 다.

int[][] nVisited = new int[3][];
nVisited[0] = new int[3] { 1, 2, 3 };
nVisited[1] = new int[3] { 4, 5, 6 };
nVisited[2] = new int[6] { 1, 2, 3, 4, 5, 6 };

//Use "foreach" to loop two-dimension array(  foreach      )
Console.WriteLine("User 'foreach' to loop two-dimension array");
foreach (var item in nVisited)
  foreach (var val in item)
   Console.WriteLine(val.ToString());

5.형식 변환 에 있어 foreach 는 표시 하지 않 고 형식 변환 을 합 니 다.

int[] val = { 1, 2, 3 };
ArrayList list = new ArrayList();
list.AddRange(val);
foreach (int item in list)//                    ,         
{
Console.WriteLine((2*item));
}
Console.WriteLine();
for (int i = 0; i < list.Count; i++)
{
int item = (int)list[i];//for        
Console.WriteLine(2 * item);
}

6.집합 요소,예 를 들 어 List등 이 foreach 를 사용 하여 순환 할 때 하나의 요 소 를 순환 할 때마다 해당 하 는 자원 을 방출 합 니 다.코드 는 다음 과 같 습 니 다.

using (IEnumerator<T> enumerator = collection.GetEnumerator())
{
  while (enumerator.MoveNext())
  {
   this.Add(enumerator.Current);
  }
}
2.foreach 순환 의 약점
1.위 에서 foreach 순환 시 사용 한 자원 을 방출 하기 때문에 추가 적 인 gc 비용 이 발생 할 수 있 으 므 로 사용 할 때 고려 하 시기 바 랍 니 다.
2.foreach 는 읽 기 전용 순환 이 라 고도 부 르 기 때문에 배열/집합 을 순환 할 때 배열/집합 을 수정 할 수 없습니다.
3.배열 의 모든 항목 은 다른 항목 의 유형 과 같 아야 합 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기