خصائص القوائم (List Properties) في Dart
القوائم (List) في Dart تحتوي على مجموعة من الخصائص المدمجة التي تسهّل التعامل معها وتوفير معلومات عنها. في هذا الشرح التفصيلي، سنتعرف على أهم الخصائص وكيفية استخدامها مع الأمثلة.
1. length
- الوصف: تعيد عدد العناصر الموجودة في القائمة.
- النوع:
int
مثال:
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
print('عدد العناصر: ${numbers.length}'); // عدد العناصر: 5
}
Dart2. isEmpty
- الوصف: تعيد
true
إذا كانت القائمة فارغة وfalse
إذا كانت تحتوي على عناصر. - النوع:
bool
مثال:
void main() {
List<String> names = [];
print('هل القائمة فارغة؟ ${names.isEmpty}'); // هل القائمة فارغة؟ true
}
Dart3. isNotEmpty
- الوصف: تعيد
true
إذا كانت القائمة تحتوي على عناصر وfalse
إذا كانت فارغة. - النوع:
bool
مثال:
void main() {
List<String> fruits = ['Apple', 'Banana'];
print('هل القائمة تحتوي على عناصر؟ ${fruits.isNotEmpty}'); // هل القائمة تحتوي على عناصر؟ true>
Dart4. first
- الوصف: تعيد أول عنصر في القائمة.
- النوع: نفس نوع عناصر القائمة.
ملاحظة:
إذا كانت القائمة فارغة، سيتم إطلاق استثناء.
مثال:
void main() {
List<String> cities = ['Cairo', 'Dubai', 'Paris'];
print('أول مدينة: ${cities.first}'); // أول مدينة: Cairo
}
Dart5. last
- الوصف: تعيد آخر عنصر في القائمة.
- النوع: نفس نوع عناصر القائمة.
ملاحظة:
إذا كانت القائمة فارغة، سيتم إطلاق استثناء.
مثال:
void main() {
List<int> numbers = [10, 20, 30, 40];
print('آخر عنصر: ${numbers.last}'); // آخر عنصر: 40
}
Dart6. reversed
- الوصف: تعيد Iterable يحتوي على عناصر القائمة بترتيب عكسي.
- النوع:
Iterable<E>
مثال:
void main() {
List<int> numbers = [1, 2, 3, 4];
print('القائمة معكوسة: ${numbers.reversed.toList()}'); // القائمة معكوسة: [4, 3, 2, 1]
}
Dart7. single
- الوصف: تعيد العنصر الوحيد في القائمة إذا كان هناك عنصر واحد فقط.
- النوع: نفس نوع عناصر القائمة.
ملاحظة:
إذا كانت القائمة تحتوي على أكثر من عنصر أو فارغة، سيتم إطلاق استثناء.
مثال:
void main() {
List<int> singleItemList = [100];
print('العنصر الوحيد: ${singleItemList.single}'); // العنصر الوحيد: 100
}
Dart8. indexWhere
- الوصف: تعيد فهرس أول عنصر يطابق شرط معين.
- النوع:
int
مثال:
void main() {
List<int> numbers = [10, 20, 30, 40, 50];
int index = numbers.indexWhere((number) => number > 25);
print('الفهرس لأول عنصر أكبر من 25: $index'); // الفهرس لأول عنصر أكبر من 25: 2
}
Dart9. lastIndexWhere
- الوصف: تعيد فهرس آخر عنصر يطابق شرط معين.
- النوع:
int
مثال:
void main() {
List<int> numbers = [10, 20, 30, 40, 30];
int index = numbers.lastIndexWhere((number) => number == 30);
print('الفهرس لآخر عنصر قيمته 30: $index'); // الفهرس لآخر عنصر قيمته 30: 4
}
Dart10. asMap
- الوصف: تعيد تمثيل القائمة كـ Map حيث المفتاح هو الفهرس والقيمة هي العنصر.
- النوع:
Map<int, E>
مثال:
void main() {
List<String> fruits = ['Apple', 'Banana', 'Mango'];
print(fruits.asMap()); // {0: Apple, 1: Banana, 2: Mango}
}
Dart11. any
- الوصف: تعيد
true
إذا كان هناك أي عنصر يحقق شرط معين. - النوع:
bool
مثال:
void main() {
List<int> numbers = [1, 2, 3, 4];
bool hasEven = numbers.any((number) => number % 2 == 0);
print('هل يوجد عدد زوجي؟ $hasEven'); // هل يوجد عدد زوجي؟ true
}
Dart12. every
- الوصف: تعيد
true
إذا كانت جميع العناصر تحقق شرط معين. - النوع:
bool
مثال:
void main() {
List<int> numbers = [2, 4, 6];
bool allEven = numbers.every((number) => number % 2 == 0);
print('هل جميع الأعداد زوجية؟ $allEven'); // هل جميع الأعداد زوجية؟ true
}
Dartملخص
خصائص القوائم في Dart تجعلها أداة قوية للتعامل مع البيانات، حيث توفر طرقًا سهلة وفعالة لمعالجة العناصر والتحقق من حالاتها.