خصائص القوائم (List Properties) في Dart

خصائص القوائم (List Properties) في Dart

القوائم (List) في Dart تحتوي على مجموعة من الخصائص المدمجة التي تسهّل التعامل معها وتوفير معلومات عنها. في هذا الشرح التفصيلي، سنتعرف على أهم الخصائص وكيفية استخدامها مع الأمثلة.


1. length

  • الوصف: تعيد عدد العناصر الموجودة في القائمة.
  • النوع: int

مثال:

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  print('عدد العناصر: ${numbers.length}'); // عدد العناصر: 5
}
Dart

2. isEmpty

  • الوصف: تعيد true إذا كانت القائمة فارغة وfalse إذا كانت تحتوي على عناصر.
  • النوع: bool

مثال:

void main() {
  List<String> names = [];
  print('هل القائمة فارغة؟ ${names.isEmpty}'); // هل القائمة فارغة؟ true
}
Dart

3. isNotEmpty

  • الوصف: تعيد true إذا كانت القائمة تحتوي على عناصر وfalse إذا كانت فارغة.
  • النوع: bool

مثال:

void main() {
  List<String> fruits = ['Apple', 'Banana'];
  print('هل القائمة تحتوي على عناصر؟ ${fruits.isNotEmpty}'); // هل القائمة تحتوي على عناصر؟ true>
Dart

4. first

  • الوصف: تعيد أول عنصر في القائمة.
  • النوع: نفس نوع عناصر القائمة.

ملاحظة:

إذا كانت القائمة فارغة، سيتم إطلاق استثناء.

مثال:

void main() {
  List<String> cities = ['Cairo', 'Dubai', 'Paris'];
  print('أول مدينة: ${cities.first}'); // أول مدينة: Cairo
}
Dart

5. last

  • الوصف: تعيد آخر عنصر في القائمة.
  • النوع: نفس نوع عناصر القائمة.

ملاحظة:

إذا كانت القائمة فارغة، سيتم إطلاق استثناء.

مثال:

void main() {
  List<int> numbers = [10, 20, 30, 40];
  print('آخر عنصر: ${numbers.last}'); // آخر عنصر: 40
}
Dart

6. reversed

  • الوصف: تعيد Iterable يحتوي على عناصر القائمة بترتيب عكسي.
  • النوع: Iterable<E>

مثال:

void main() {
  List<int> numbers = [1, 2, 3, 4];
  print('القائمة معكوسة: ${numbers.reversed.toList()}'); // القائمة معكوسة: [4, 3, 2, 1]
}
Dart

7. single

  • الوصف: تعيد العنصر الوحيد في القائمة إذا كان هناك عنصر واحد فقط.
  • النوع: نفس نوع عناصر القائمة.

ملاحظة:

إذا كانت القائمة تحتوي على أكثر من عنصر أو فارغة، سيتم إطلاق استثناء.

مثال:

void main() {
  List<int> singleItemList = [100];
  print('العنصر الوحيد: ${singleItemList.single}'); // العنصر الوحيد: 100
}
Dart

8. indexWhere

  • الوصف: تعيد فهرس أول عنصر يطابق شرط معين.
  • النوع: int

مثال:

void main() {
  List<int> numbers = [10, 20, 30, 40, 50];
  int index = numbers.indexWhere((number) => number > 25);
  print('الفهرس لأول عنصر أكبر من 25: $index'); // الفهرس لأول عنصر أكبر من 25: 2
}
Dart

9. lastIndexWhere

  • الوصف: تعيد فهرس آخر عنصر يطابق شرط معين.
  • النوع: int

مثال:

void main() {
  List<int> numbers = [10, 20, 30, 40, 30];
  int index = numbers.lastIndexWhere((number) => number == 30);
  print('الفهرس لآخر عنصر قيمته 30: $index'); // الفهرس لآخر عنصر قيمته 30: 4
}
Dart

10. asMap

  • الوصف: تعيد تمثيل القائمة كـ Map حيث المفتاح هو الفهرس والقيمة هي العنصر.
  • النوع: Map<int, E>

مثال:

void main() {
  List<String> fruits = ['Apple', 'Banana', 'Mango'];
  print(fruits.asMap()); // {0: Apple, 1: Banana, 2: Mango}
}
Dart

11. any

  • الوصف: تعيد true إذا كان هناك أي عنصر يحقق شرط معين.
  • النوع: bool

مثال:

void main() {
  List<int> numbers = [1, 2, 3, 4];
  bool hasEven = numbers.any((number) => number % 2 == 0);
  print('هل يوجد عدد زوجي؟ $hasEven'); // هل يوجد عدد زوجي؟ true
}
Dart

12. every

  • الوصف: تعيد true إذا كانت جميع العناصر تحقق شرط معين.
  • النوع: bool

مثال:

void main() {
  List<int> numbers = [2, 4, 6];
  bool allEven = numbers.every((number) => number % 2 == 0);
  print('هل جميع الأعداد زوجية؟ $allEven'); // هل جميع الأعداد زوجية؟ true
}
Dart

ملخص

خصائص القوائم في Dart تجعلها أداة قوية للتعامل مع البيانات، حيث توفر طرقًا سهلة وفعالة لمعالجة العناصر والتحقق من حالاتها.