Junior
Ҳар кадом объект дар дохили цикл foreach истифода бурда мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар цикли foreach метавон истифода бурд объектҳое, ки интерфейси System.Collections.IEnumerable ё System.Collections.Generic.IEnumerable<T>-ро амалӣ мекунанд.
Типҳои асосии объектҳо:
- Аррейҳо (якмаслаҳ ва бисёрмаслаҳ)
- Коллексияҳое, ки
IEnumerableёIEnumerable<T>-ро амалӣ мекунанд:List<T>Dictionary<TKey, TValue>HashSet<T>Queue<T>ваStack<T>- Классҳои дигар аз фазоҳои номҳои
System.CollectionsваSystem.Collections.Generic
- Сатрҳо (
System.String- дар аломатҳо такрор мешаванд) - Объектҳое, ки аз ҷониби LINQ-запросҳо баргардонида мешаванд
- Типҳои маълумоти худсохт, ки яке аз интерфейсҳоро амалӣ мекунанд.
Масалан:
// Аррей
string[] colors = {"сурх", " сабз", "сабз"};
foreach (string color in colors)
{
// ...
}
// List<T>
List<int> numbers = new List<int> {1, 2, 3, 4, 5};
foreach (int number in numbers)
{
// ...
}
// сатр
string text = "салом";
foreach (char c in text)
{
// ...
}
// Dictionary<TKey, TValue> дар KeyValuePair<TKey, TValue> такрор мекунад
Dictionary<string, int> ages = new Dictionary<string, int>
{
{"Alice", 30},
{"Bob", 25}
};
foreach (KeyValuePair<string, int> entry in ages)
{
// entry.Key, entry.Value
}
// Классии худсохт, ки IEnumerable<T>-ро амалӣ мекунад
public class MyCollection : IEnumerable<int>
{
private int[] _data = {10, 20, 30};
public IEnumerator<int> GetEnumerator()
{
foreach (var item in _data)
{
yield return item; // Истифодаи итератор
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
// Истифодаи классии худсохт
MyCollection myCollection = new MyCollection();
foreach (int item in myCollection)
{
// ...
}