Sobes.tech
Junior

Foreach döngüsündə hansı obyektlər istifadə oluna bilər?

sobes.tech Süni İntellekt

AI-dan cavab

foreach döngüsündə System.Collections.IEnumerable və ya System.Collections.Generic.IEnumerable<T> interfeysini həyata keçirən obyektlər istifadə oluna bilər.

Əsas obyekt tipləri:

  • Massivlər (birölçülü və çoxölçülü)
  • IEnumerable və ya IEnumerable<T>-i həyata keçirən kolleksiyalar:
    • List<T>
    • Dictionary<TKey, TValue>
    • HashSet<T>
    • Queue<T>Stack<T>
    • System.CollectionsSystem.Collections.Generic ad sahələrindən digər sinflər
  • Stringlər (System.String - simvollar üzrə iterasiya edir)
  • LINQ sorğuları ilə geri qaytarılan obyektlər
  • Yuxarıda qeyd olunan interfeysləri həyata keçirən özəl məlumat tipləri.

Nümunə:

// Massiv
string[] colors = {"qırmızı", "yaşıl", "göy"};
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 = "salam";
foreach (char c in text)
{
    // ...
}

// Dictionary<TKey, TValue> KeyValuePair<TKey, TValue> üzərində iterasiya edir
Dictionary<string, int> ages = new Dictionary<string, int>
{
    {"Alice", 30},
    {"Bob", 25}
};
foreach (KeyValuePair<string, int> entry in ages)
{
    // entry.Key, entry.Value
}

// Özəl sinif, IEnumerable<T> həyata keçirir
public class MyCollection : IEnumerable<int>
{
    private int[] _data = {10, 20, 30};

    public IEnumerator<int> GetEnumerator()
    {
        foreach (var item in _data)
        {
            yield return item; // Iterator istifadəsi
        }
    }

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

// Öz sinifdən istifadə
MyCollection myCollection = new MyCollection();
foreach (int item in myCollection)
{
    // ...
}