English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
List<T> هي مجموعة من العناصر القوية، يمكنك الوصول إليها عبر المؤشر، وتحتوي على طرق用于 ترتيب، البحث وتعديل القائمة. هي نسخة قابلة للتعريف من ArrayList في مساحة الأسماء System.Collection.Generic.
List<T> متطابقة مع ArrayList، وهي قابلة للتطبيق لـ IList <T>.
يوجد في مساحة الأسماء System.Collection.Generic.
List<T> يمكن أن يحتوي على عناصر من نوع معين. يقدم التحقق من النوع في وقت التجميع، ولا يفعل التعبئة والتزيل لأنه قابلة للتعريف.
يمكنك إضافة العناصر باستخدام طريقة Add()، AddRange() أو لغة التجميع المبدئية (collection-initializer).
يمكنك الوصول إلى العناصر من خلال تمرير مؤشر، مثل myList[0]. يبدأ المؤشر من الصفر.
List<T> أسرع في الأداء من ArrayList، ويقل عدد الأخطاء.
List<T> هي مجموعة قابلة للتعريف، لذا تحتاج إلى تحديد نوع البيانات الذي يمكن أن يحتويه يمكنه تخزينه. يظهر المثال التالي كيفية إنشاء القائمة وإضافة العناصر.
List<int> primeNumbers = new List<int>(); primeNumbers.Add(1); // استخدام طريقة add() لإضافة العناصر primeNumbers.Add(3); primeNumbers.Add(5); primeNumbers.Add(7); var cities = new List<string>(); cities.Add("New York"); cities.Add("London"); cities.Add("Mumbai"); cities.Add("Chicago"); cities.Add(null); // يسمح قائمة الأنواع المفهومة بوجود null // إضافة عناصر باستخدام جملة مبدأ مجموعة (collection-initializer) var bigCities = new List<string>() { "New York", "London", "Mumbai", "Chicago" };
في المثال السابق،
List<int> primeNumbers = new List<int>();
إنشاء قائمة من نوع int. وبالمثل، القوائم cities و bigcity هي قوائم من نوع string. ثم يمكن استخدام طريقة add() أو جملة مبدأ مجموعة (collection-initializer) لإضافة عناصر إلى القائمة.
يمكن أيضًا استخدام جملة مبدأ مجموعة (collection-initializer) لضمان أعضاء الفئة المخصصة. في المثال أدناه، يتم إضافة أعضاء فئة Student إلى List <Student>.
var students = new List<Student>() { new Student() { Id = 1, Name = "Bill"}, new Student() { Id = 2, Name = "Steve"}, new Student() { Id = 3, Name = "Ram"}, new Student() { Id = 4, Name = "Abdul"} };
يمكن استخدام طريقة AddRange() لضمان جميع العناصر في المصفوفة أو مجموعة أخرى إلى قائمة List.
توقيع AddRange():
void AddRange(IEnumerable<T> collection)
string[] cities = new string[3]{ "Mumbai", "London", "New York" }; var popularCities = new List<string>(); // إضافة مصفوفة إلى القائمة popularCities.AddRange(cities); var favouriteCities = new List<string>(); // إضافة قائمة favouriteCities.AddRange(popularCities);
يمكن الوصول إلى القائمة باستخدام المؤشرات، واللفافات for/foreach، واستخدام استعلامات LINQ. تبدأ أرقام القوائم من الصفر. يتم تقديم المؤشر في الدواليب لتحديد عنصر قائمة واحدة، كما في المصفوفات. يتم تمرير قائمة <T> للحصول على مجموعة List <T>.
List<int> numbers = new List<int>() { 1, 2, 5, 7, 8, 10 }; Console.WriteLine(numbers[0]); // تلوين1 Console.WriteLine(numbers[1]); // رقم 2 Console.WriteLine(numbers[2]); // رقم 5 Console.WriteLine(numbers[3]); // رقم 7 // استخدام طريقة foreach LINQ numbers.ForEach(num => Console.WriteLine(num + ", "));// طباعة 1،2،5،7،8،10، // استخدام دائرة for for (int i = 0; i < numbers.Count; i++) Console.WriteLine(numbers[i]);
List<T> تحقق من واجهة IEnumerable. لذلك، يمكننا استخدام لغة استعلام LINQ أو طريقة الاستعلام لاستعلام القائمة، كما هو موضح أدناه.
var students = new List<Student>() { new Student() { Id = 1, Name = "Bill"}, new Student() { Id = 2, Name = "Steve"}, new Student() { Id = 3, Name = "Ram"}, new Student() { Id = 4, Name = "Abdul"} }; // للحصول على جميع الطلاب الذين يدعون "Bill" var result = from s in students where s.Name == "Bill" select s; foreach (var student in result) Console.WriteLine(student.Id + ", " + student.Name);
استخدام هذه الطريقة Insert() لإدراج العنصر في مجموعة List<T> في موقع الت索引 المحدد.
توقيع Insert():
void Insert(int index, T item);
var numbers = new List<int>{ 10, 20, 30, 40 }; numbers.Insert(1, 11); // إدراج 11 في أول مؤشر، بعد 10. foreach (var num in numbers) Console.Write(num);
استخدام Remove() لازالة العنصر الأول المحدد من مجموعة List<T>. باستخدام RemoveAt() لإزالة العنصر من المرتبة المحددة. إذا لم يكن هناك عنصر في المرتبة المحددة، فإنه سيكون له خطأ ArgumentOutOfRangeException.
توقيع Remove()
bool Remove(T item)
توقيع RemoveAt()
void RemoveAt(int index)
var numbers = new List<int>{ 10, 20, 30, 40, 10 }; numbers.Remove(10); // إزالة 10 من القائمة numbers.RemoveAt(2); // إزالة العنصر الثالث (الترقيم من البداية) //numbers.RemoveAt(10); // يرتكب ArgumentOutOfRangeException foreach (var el in intList) Console.Write(el); // يخرج 20 30
استخدام Contains() لتحديد ما إذا كان العنصر موجودًا في قائمة <T>.
var numbers = new List<int>{ 10, 20, 30, 40 }; numbers.Contains(10); // يعود إلى true numbers.Contains(11); // يعود إلى false numbers.Contains(20); // يعود إلى true
الشكل أدناه يوضح هيكل قائمة <T>.
في الجدول أدناه، قائمة <T> المهمة من الخصائص والطرق:
خصائص | طريقة الاستخدام |
---|---|
Items | الحصول على أو تعيين العنصر في المرتبة المحددة. |
Count | عدد العناصر الموجودة في قائمة <T>. |
الطريقة | طريقة الاستخدام |
---|---|
Add | أضف العنصر إلى نهاية قائمة <T>. |
AddRange | أضف عناصر المجموعة المحددة إلى نهاية قائمة <T>. |
BinarySearch | ابحث عن العنصر وعدد العنصر وإرجاعه. |
Clear | أزيل جميع العناصر من قائمة <T>. |
Contains | تحقق من وجود العنصر المحدد في قائمة <T>. |
Find | ابحث عن العنصر الأول بناءً على الدالة الحكم المحددة. |
Foreach | استعراض قائمة <T>. |
إدراج | إدراج العنصر في الموضع المحدد في قائمة <T>. |
InsertRange | إدراج عناصر من مجموعة أخرى في الموضع المحدد. |
Remove | حذف المرة الأولى التي تظهر للعنصر المحدد. |
RemoveAt | حذف العنصر المحدد في الموضع المحدد. |
RemoveRange | حذف جميع العناصر التي تتطابق مع الحكم المحدد. |
Sort | ترتيب جميع العناصر. |
TrimExcess | ضبط الحجم إلى عدد العناصر الفعلية. |
TrueForAll | تحديد ما إذا كان كل عنصر في قائمة <T> يتطابق مع الحالة المحددة من قبل الحكم المحدد. |