🔁 التكرار (Looping) في Set
في Dart
مع شرح الأنواع + ٢ مثال لكل نوع
🧱 أولًا: ما هو الـ Set
؟
- هو مجموعة غير مرتبة من العناصر.
- لا يسمح بالتكرار (أي لا توجد قيم مكررة داخله).
- يتم الوصول للعناصر بالتكرار فقط (لا يوجد index مثل القوائم).
مثال بسيط:
Set<String> fruits = {'apple', 'banana', 'orange', 'banana'}; // banana ستُضاف مرة واحدة فقط
print(fruits); // {apple, banana, orange}
JavaScript🔁 طرق التكرار على Set
في Dart، يمكنك التكرار على Set
باستخدام:
1. for-in
loop
2. .forEach()
method
3. تحويله إلى List مع for
العادي (اختياري)
✅ 1. التكرار باستخدام for-in
✅ الاستخدام:
أبسط وأشهر طريقة.
📌 المثال 1:
Set<String> names = {'Ali', 'Sara', 'Omar'};
for (var name in names) {
print(name);
}
JavaScript📌 المثال 2:
Set<int> numbers = {10, 20, 30};
for (var number in numbers) {
print(number * 2); // يطبع 20، 40، 60
}
JavaScript✅ 2. التكرار باستخدام .forEach()
✅ الاستخدام:
دالة تُنفذ وظيفة لكل عنصر.
📌 المثال 1:
Set<String> countries = {'Egypt', 'Jordan', 'Iraq'};
countries.forEach((country) {
print('Country: $country');
});
JavaScript📌 المثال 2:
Set<int> numbers = {1, 2, 3};
numbers.forEach((n) => print(n * n)); // 1, 4, 9
JavaScript✅ 3. التكرار بتحويل Set
إلى List
+ for
مفيد لو أردت الوصول للعنصر حسب موقعه (index)، لأن
Set
ليس فيه index.
📌 المثال 1:
Set<String> colors = {'red', 'green', 'blue'};
List<String> colorList = colors.toList();
for (int i = 0; i < colorList.length; i++) {
print('Color $i: ${colorList[i]}');
}
JavaScript📌 المثال 2:
Set<double> prices = {10.5, 20.0, 30.5};
List<double> listPrices = prices.toList();
for (int i = 0; i < listPrices.length; i++) {
print('Price: ${listPrices[i] + 5}');
}
JavaScript⚠️ ملاحظات مهمة:
- لا تعتمد على ترتيب العناصر في
Set
لأنSet
غير مرتبة. - لو كنت تحتاج ترتيب، استخدم
Set
→List
→sort()
.
✅ ملخص سريع:
الطريقة | متى تستخدمها؟ | فيها index؟ |
---|---|---|
for-in | التكرار العادي والبسيط | ❌ |
.forEach() | عند تنفيذ دالة لكل عنصر | ❌ |
toList() + for | عند الحاجة للوصول للعناصر حسب الموقع (index) | ✅ |