Junior
Qaysi obyektlar foreach siklida ishlatilishi mumkin?
sobes.tech AI
AIdan javob
Foreach tsiklida System.Collections.IEnumerable yoki System.Collections.Generic.IEnumerable<T> interfeysini amalga oshiradigan obyektlar ishlatilishi mumkin.
Asosiy obyekt turlari:
- Massivlar (bir- va ko‘p o‘lchovli)
IEnumerableyokiIEnumerable<T>ni amalga oshiradigan kolleksiyalar:List<T>Dictionary<TKey, TValue>HashSet<T>Queue<T>vaStack<T>System.CollectionsvaSystem.Collections.Genericnomlar to‘plamlaridagi boshqa sinflar
- Stringlar (
System.String- belgilar bo‘yicha iteratsiya qilinadi) - LINQ so‘rovlaridan qaytarilgan obyektlar
- Yuqoridagi interfeyslarni amalga oshiradigan o‘ziga xos ma'lumot turlari.
Misol:
// Massiv
string[] colors = {"qizil", "yashil", "ko‘k"};
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 = "salom";
foreach (char c in text)
{
// ...
}
// Dictionary<TKey, TValue> KeyValuePair<TKey, TValue> bo‘yicha iteratsiya qiladi
Dictionary<string, int> ages = new Dictionary<string, int>
{
{"Alice", 30},
{"Bob", 25}
};
foreach (KeyValuePair<string, int> entry in ages)
{
// entry.Key, entry.Value
}
// O‘ziga xos sinf, IEnumerable<T> ni amalga oshiradi
public class MyCollection : IEnumerable<int>
{
private int[] _data = {10, 20, 30};
public IEnumerator<int> GetEnumerator()
{
foreach (var item in _data)
{
yield return item; // Iteratordan foydalanish
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
// O‘ziga xos sinfdan foydalanish
MyCollection myCollection = new MyCollection();
foreach (int item in myCollection)
{
// ...
}