Sobes.tech
Junior

Foreach döngüsünde hangi nesneler kullanılabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

foreach döngüsünde, System.Collections.IEnumerable veya System.Collections.Generic.IEnumerable<T> arayüzünü uygulayan nesneler kullanılabilir.

Ana nesne türleri:

  • Diziler (tek boyutlu ve çok boyutlu)
  • IEnumerable veya IEnumerable<T> uygulayan koleksiyonlar:
    • List<T>
    • Dictionary<TKey, TValue>
    • HashSet<T>
    • Queue<T> ve Stack<T>
    • System.Collections ve System.Collections.Generic isim alanlarındaki diğer sınıflar
  • Dizgeler (System.String - karakterler üzerinde yineleme yapar)
  • LINQ sorguları ile dönen nesneler
  • Belirtilen arayüzleri uygulayan kendi veri tipleri.

Örnek:

// Dizi
string[] colors = {"kırmızı", "yeşil", "mavi"};
foreach (string color in colors)
{
    // ...
}

// List<T>
List<int> numbers = new List<int> {1, 2, 3, 4, 5};
foreach (int number in numbers)
{
    // ...
}

// string
string text = "merhaba";
foreach (char c in text)
{
    // ...
}

// Dictionary<TKey, TValue> KeyValuePair<TKey, TValue> üzerinde yineleme yapar
Dictionary<string, int> ages = new Dictionary<string, int>
{
    {"Alice", 30},
    {"Bob", 25}
};
foreach (KeyValuePair<string, int> entry in ages)
{
    // entry.Key, entry.Value
}

// Kendine özgü sınıf, IEnumerable<T> uygular
public class MyCollection : IEnumerable<int>
{
    private int[] _data = {10, 20, 30};

    public IEnumerator<int> GetEnumerator()
    {
        foreach (var item in _data)
        {
            yield return item; // Yineleyici kullanımı
        }
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

// Kendi sınıfını kullanma
MyCollection myCollection = new MyCollection();
foreach (int item in myCollection)
{
    // ...
}