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- անցնում է նշանների միջով) - Objekտներ, որոնք վերադարձվում են 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; // Օգտագործում է iterator
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
// Ինքնատիպ դասի օգտագործում
MyCollection myCollection = new MyCollection();
foreach (int item in myCollection)
{
// ...
}