English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在C#中,ArrayList 是一个非泛型的对象集合,其大小会动态增加。它与Array相同,只是它的大小是动态增加的。
一个ArrayList可以用来添加未知数据,可能你并不知道的类型和数据的大小。
System.Collections 命名空间中包含的 ArrayList 类。ArrayList使用 new 关键字创建对象。
using System.Collections; ArrayList arlist = new ArrayList(); // 或者 var arlist = new ArrayList(); // 推荐
使用Add()方法或对象初始值设定项语法在 ArrayList 中添加元素。
ArrayList 可以包含多个 null 和 重复值。
// 使用ArrayList.Add()方法添加元素 var arlist1 = new ArrayList(); arlist1.Add(1); arlist1.Add("Bill"); arlist1.Add(" "); arlist1.Add(true); arlist1.Add(4.5); arlist1.Add(null); // 使用对象初始化语法添加元素 var arlist2 = new ArrayList() { 2, "Steve", " ", true, 4.5, null };
使用 AddRange (ICollection c)方法在 ArrayList 中添加一个完整的 Array、 HashTable、 SortedList、 ArrayList、 BitArray、 Queue 和 Stack。
var arlist1 = new ArrayList(); var arlist2 = new ArrayList() { 1, "Bill", " ", true, 4.5, null }; int[] arr = { 100, 200, 300, 400 }; Queue myQ = new Queue(); myQ.Enqueue("Hello"); myQ.Enqueue("World!"); arlist1.AddRange(arlist2); //إضافة ArrayList إلى ArrayList arlist1.AddRange(arr); //إضافة مصفوفة إلى ArrayList arlist1.AddRange(myQ); //إضافة طابور إلى ArrayList
قام فئة ArrayList هذه بتحقق من interface IList. لذا،يمكن استخدام محول الوصول للوصول إلى العناصر مثل مصفوفة. تبدأ الأسس من الصفر وتزيد ب 1 لكل عنصر متقدم.
يحتاج إلى تحويل صريح إلى النوع المناسب أو استخدام متغير var.
الشئ arlist = new ArrayList() { 1, "Bill", 300, 4.5f }; //استخدام محول الوصول للوصول إلى عنصر واحد عدد firstElement = (عدد) arlist[0]; //يعود 1 سلسلة secondElement = (سلسلة) arlist[1]; //يعود "Bill" //عدد secondElement = (عدد) arlist[1]; //خطأ: لا يمكن تغطية السلسلة لتكون عدد //استخدام كلمة المفتاح var دون تحويل صريح الشئ firstElement = arlist[0]; //يعود 1 الشئ secondElement = arlist[1]; //يعود "Bill" //الشئ fifthElement = arlist[5]; //خطأ: الموقع يتجاوز النطاق //تحديث العنصر arlist[0] = "Steve"; arlist[1] = 100; //arlist[5] = 500; //خطأ: الموقع يتجاوز النطاق
ArrayList تحقق من Collection interface،و التي تدعم التكرار على نوع المجموعات. لذا،استخدم foreach و循环 for لتكرار ArrayList.ممتلكة Count من ArrayList تعود عدد العناصر في ArrayList.
ArrayList arlist = new ArrayList() { 1, "Bill", 300, 4.5F }; foreach (الشئ item في arlist) Console.Write(item + ", "); //输出:1,Bill,300،4.5, لـ(عدد i = 0؛i < arlist.Count;i++) Console.Write(arlist[i] + ", "); // الناتج: 1،Bill،300،4.5,
استخدام طريقة Insert() لإدراج العنصر المحدد في موقع معين في ArrayList.
القواعد:
void Insert(int index, Object value)
ArrayList arlist = new ArrayList() { 1, "Bill", 300, 4.5f }; arlist.Insert(1, "Second Item"); foreach(var val in arlist) Console.WriteLine(val);
استخدام طريقة InsertRange() لإدراج مجموعة في موقع معين في ArrayList.
القواعد:
void InsertRange(int index, ICollection c)
ArrayList arlist1 = new ArrayList() { 100, 200, 600 }; ArrayList arlist2 = new ArrayList() { 300, 400, 500 }; arlist1.InsertRange(2, arlist2); foreach(var item in arlist1) Console.Write(item + ", "); // الناتج: 100،200،300،400،500،600،
استخدام طريقة Remove()،RemoveAt() أو RemoveRange لإزالة العنصر من ArrayList.
ArrayList arList = new ArrayList() { 1, null, "Bill", 300, "", 4.5f, 300, }; arList.Remove(null); // إزالة أول ظهور null arList.RemoveAt(4); // إزالة العنصر في الموقع 4 arList.RemoveRange(0, 2); // إزالة العنصر الأول (الواقعي 0) و العنصر الثاني
استخدام طريقة Contains() لتحديد ما إذا كان العنصر المحدد موجودًا في ArrayList. إذا كان موجودًا، يتم العودة إلى true، وإلا يتم العودة إلى false.
ArrayList arList = new ArrayList() { 1, "Bill", 300, 4.5f, 300 }; Console.WriteLine(arList.Contains(300)); // true Console.WriteLine(arList.Contains("Bill")); // true Console.WriteLine(arList.Contains(10)); // false Console.WriteLine(arList.Contains("Steve")); // false
ArrayList بسبب مشاكل الأداء، لا يُنصح باستخدام هذه الفئة. بدلاً من ذلك، استخدم List<object> لتحديد الأجسام المختلفة. لتحديد بيانات نفس النوع، استخدم List<T> generics.
الشكل التالي يوضح فئة ArrayList هذه
الخصائص | وصف |
---|---|
Capacity | الحصول على أو تعيين عدد العناصر التي يمكن أن تحتويهاArrayList |
Count | الحصول على عدد العناصر الفعلية الموجودة فيArrayList |
IsFixedSize | الحصول على قيمة تشير إلى ما إذا كانArrayList حجمه ثابت |
IsReadOnly | الحصول على قيمة تشير إلى ما إذا كانArrayList قابلاً للقراءة فقط |
النقطة | الحصول على أو تعيين العنصر في الموضع المحدد |
الطريقة | وصف |
---|---|
Add()/AddRange() | إضافة عنصر واحد في نهايةArrayList باستخدام Add () إضافة جميع العناصر في المجموعة المحددة إلىArrayList باستخدام AddRange () |
Insert()/InsertRange() | إدراج عنصر واحد فيArrayList في الموضع المحدد باستخدام Insert () إدراج جميع العناصر في المجموعة المحددة فيArrayList من الموضع المحدد باستخدام InsertRange () |
Remove()/RemoveRange() | إزالة العنصر المحدد من ArrayList باستخدام Remove () إزالة النطاق المحدد من العناصر من ArrayList باستخدام RemoveRange () |
RemoveAt() | إزالة العنصر في الموضع المحدد من ArrayList |
Sort() | ترتيب جميع العناصر في ArrayList |
Reverse() | ترتيب العناصر في ArrayList بالعكس |
Contains | تحقق من وجود العنصر المحدد في ArrayList. إذا كان موجودًا، فسيتم العودة إلى true، وإلا سيتم العودة إلى false. |
Clear | إزالة جميع العناصر من ArrayList. |
CopyTo | نسخ جميع العناصر أو نطاق العناصر إلى مصفوفة قابلة للتحصيل. |
GetRange | استرداد عدد العناصر المحددة من ArrayList باستخدام مؤشر معين. |
IndexOf | البحث عن العنصر المحدد، إذا تم العثور عليه، فسيتم العودة إلى هذا العنصر من البداية. إذا لم يتم العثور على العنصر، فيتم العودة إلى -1. |
ToArray | استرداد مصفوفة من ArrayList. |