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
|