1️⃣ sublist(start, [end])
✅ الاستخدام:
ترجع جزء (مقطع) من القائمة الأصلية من start إلى end - 1.
📌 مثال 1:
List<int> nums = [10, 20, 30, 40, 50];
var sub = nums.sublist(1, 4);
print(sub); // [20, 30, 40]JavaScript📌 مثال 2:
List<String> names = ['Ali', 'Sara', 'Omar'];
print(names.sublist(1)); // ['Sara', 'Omar']JavaScript2️⃣ shuffle()
✅ الاستخدام:
يقوم بترتيب عناصر القائمة بشكل عشوائي (تُغير القائمة الأصلية).
📌 مثال 1:
List<int> numbers = [1, 2, 3, 4, 5];
numbers.shuffle();
print(numbers); // ترتيب عشوائي كل مرةJavaScript📌 مثال 2:
List<String> cards = ['A', 'B', 'C', 'D'];
cards.shuffle();
print(cards); // ترتيب عشوائي للكروتJavaScript3️⃣ asMap()
✅ الاستخدام:
تحول القائمة إلى Map حيث:
- المفاتيح = الأرقام (index)
- القيم = القيم الأصلية
📌 مثال 1:
List<String> items = ['apple', 'banana', 'orange'];
Map<int, String> mapped = items.asMap();
print(mapped); // {0: apple, 1: banana, 2: orange}JavaScript📌 مثال 2:
items.asMap().forEach((index, value) {
print('Index $index => $value');
});JavaScript4️⃣ whereType<T>()
✅ الاستخدام:
تُصفّي العناصر حسب نوعها (String, int, bool…)
📌 مثال 1:
List<dynamic> mixed = [1, 'hello', true, 2.5];
var onlyInts = mixed.whereType<int>().toList();
print(onlyInts); // [1]JavaScript📌 مثال 2:
var onlyStrings = mixed.whereType<String>().toList();
print(onlyStrings); // ['hello']JavaScript5️⃣ getRange(start, end)
✅ الاستخدام:
مثل sublist تمامًا ولكن ترجع Iterable بدل List.
📌 مثال 1:
List<int> nums = [10, 20, 30, 40, 50];
var range = nums.getRange(1, 4);
print(range); // (20, 30, 40)JavaScript📌 مثال 2:
for (var x in nums.getRange(2, 5)) {
print(x); // 30, 40, 50
}JavaScript6️⃣ any((element) => شرط)
✅ الاستخدام:
ترجع true إذا يوجد عنصر واحد على الأقل يحقق الشرط.
📌 مثال 1:
List<int> numbers = [1, 2, 3, 4];
bool hasEven = numbers.any((n) => n % 2 == 0);
print(hasEven); // trueJavaScript📌 مثال 2:
List<String> names = ['Ali', 'Sara', 'Omar'];
print(names.any((name) => name.startsWith('S'))); // trueJavaScript7️⃣ every((element) => شرط)
✅ الاستخدام:
ترجع true فقط إذا جميع العناصر تحقق الشرط.
📌 مثال 1:
List<int> scores = [60, 70, 80];
bool allPassed = scores.every((s) => s >= 50);
print(allPassed); // trueJavaScript📌 مثال 2:
List<String> tags = ['php', 'dart', 'css'];
bool allShort = tags.every((tag) => tag.length <= 5);
print(allShort); // trueJavaScript8️⃣ take(n)
✅ الاستخدام:
تأخذ أول n عناصر فقط من القائمة.
📌 مثال 1:
List<int> nums = [1, 2, 3, 4, 5];
print(nums.take(3).toList()); // [1, 2, 3]JavaScript📌 مثال 2:
List<String> langs = ['Dart', 'PHP', 'JS', 'Python'];
var short = langs.take(2).toList();
print(short); // [Dart, PHP]JavaScript9️⃣ skip(n)
✅ الاستخدام:
يتجاوز أول n عناصر ويُرجع الباقي.
📌 مثال 1:
List<int> nums = [10, 20, 30, 40, 50];
print(nums.skip(2).toList()); // [30, 40, 50]JavaScript📌 مثال 2:
List<String> topics = ['HTML', 'CSS', 'JS', 'Dart'];
print(topics.skip(1).toList()); // [CSS, JS, Dart]JavaScript✅ ملخص سريع بصري:
| الدالة | الوظيفة |
|---|---|
sublist() | ترجع جزء من القائمة |
shuffle() | تخلط الترتيب عشوائيًا |
asMap() | تحول القائمة إلى Map (index: value) |
whereType<T>() | تُرجع العناصر التي تنتمي لنوع معين فقط |
getRange() | مثل sublist لكن ترجع Iterable |
any() | هل يوجد عنصر واحد يحقق شرط؟ |
every() | هل كل العناصر تحقق شرطًا؟ |
take(n) | تأخذ أول n عناصر |
skip(n) | تتجاوز أول n عناصر |