Using foreach with Collections

foreach ±¸¹®À» ÀÌ¿ëÇؼ­ ¿ÀºêÁ§Æ®ÀÇ ³»¿ëÀ» ¹Ýº¹ÀûÀ¸·Î Á¢±ÙÇÏ°í ´Ù·ç±â À§Çؼ­´Â foreach ³»ºÎ¿¡¼­ ¿­°ÅÀÚ¸¦ ¾î¶»°Ô º¯È¯ ÇÏ´ÂÁö ¾Ë ÇÊ¿ä°¡ ÀÖ´Ù.

foreach ¸í·É¹®:

 foreach  (ItemType item  in    myCollection)

 

foreach (string s in myCollection)
{
     Console.WriteLine("String is {0}", s);
}

³»ºÎ¿¡¼­ ó¸® µÇ´Â ÄÚµå·Î º¯È¯ÈÄ

IEnumerator enumerator = ((IEnumerator) myCollection).GetEnumerator();

while(enumerator.GetNext())
{
      string s = (string) enumerator.Current;
      Console.WriteLine("String is {0}", s);
}

¿ÀºêÁ§Æ®¿¡¼­ Ä÷º¼ÇÀ» ÀÌ¿ëÇϱâ À§ÇØ ÇÊ¿äÇÑ°Ç ´ÙÀ½°ú °°´Ù.

1. ¿­°ÅÀÚ¸¦ ¸®ÅÏÇÏ´Â GetEnumerator() ¸Þ½îµå¸¦ Á¦°øÇØ¾ß ÇÑ´Ù.

2. ItemTyp¸¦ ¸®ÅÏÇÏ´Â ÇÁ·ÎÆÛƼ Current¸¦ Á¦°øÇØ¾ß ÇÑ´Ù.     
   Current´Â Á¢±ÙÀÚ´Â Ä÷º¼ÇÀÇ ÇöÀç ¿ä¼Ò¸¦ ¹ÝȯÇÑ´Ù.

3. bool °ªÀ» ¸®ÅÏÇÏ´Â MoveNext¸¦ Á¦°øÇØ¾ß ÇÑ´Ù.
   ´ÙÀ½ µ¥ÀÌÅÍ°¡ ÀÖ´Ù¸é true¸¦ ¸®ÅÏÇÑ´Ù.

Ä÷º¼ÇÀ» »ç¿ëÇϱâ À§Çؼ­´Â GetEnumerator(), ÇÁ·ÎÆÛƼ Current, MoveNext() 3°¡Áö¸¦ Ŭ·¡½º³»¿¡ ¸¸µé¾î¾ß ÇÑ´Ù.
Reset()µµ °°ÀÌ Ãß°¡ÇØÁÖ´Â°Ô ÁÁ´Ù.

Ä÷º¼ÇÀ» »ç¿ëÇϱâ À§ÇÑ 3°¡Áö ¹æ¹ý

1. ¿ÀºêÁ§Æ®³»¿¡ GetEnumerator, Current, MoveNext¸¦ ¸¸µç´Ù. C#¿¡¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù. (¿¹Á¦1-1, ¿¹Á¦2-2)

2.  IEnumerable ÀÎÅÍÆäÀ̽º¸¦ »ó¼ÓÇÑ ¿ÀºêÁ§Æ®³»¿¡ GetEnumerator, Current, MoveNext¸¦ ¸¸µç´Ù.
    C# »Ó¸¸ ¾Æ´Ï¶ó ºñÁê¾ó º£ÀÌÁ÷ °°Àº ´Ù¸¥ ¾ð¾î¿¡¼­µµ »ç¿ë ÇÒ ¼ö ÀÖ´Ù.(Á¦³×¸¯ Ä÷º¼Ç) (¿¹Á¦2)

3. ArrayList³ª Hashtable °°ÀÌ ¹Ì¸® ¸¸µé¾îÁ® ÀÖ´Â Ä÷º¼ÇÀ» »ç¿ëÇÏ´Â ¹æ¹ý

¿¹Á¦1-1

 

 

¿¹Á¦1-2   1-1ÀÇ MyEnumerator ´ë½Å MyCollectionÀ» »ç¿ë

 

 

¿¹Á¦2)

 


ÂüÁ¶:

     Using foreach with Collections
     http://msdn2.microsoft.com/en-us/library/aa288257(VS.71).aspx#vclrfforeachcollections_example2b