![]() |
|
|||||||
| قسم لغة Microsoft Visual C#.NET هذا القسم مخصص للمواضيع والاستفسارات حول لغة #C الجديدة والقوية من مايكروسوفت والحائزة على شهرة عالمية كبيرة تنافس Visual Basic .net |
| آخر 10 مشاركات |
|
|
|
LinkBack | أدوات الموضوع | انواع عرض الموضوع |
|
|
#1 (permalink) |
|
عميد كلية
الجنس: ذكـــر الجنسية: سوريا بلد الإقامة: سوريا الوظيفة: تكنلوجيا المعلومات - برمجة المؤهل الدراسي: البكلوريوس التخصص العلمي: تكنلوجيا المعلومات - هندسة حاسب آلي كيف عرفت عن موقعنا: اعلان عن موقعكم في موقع اخر تاريخ التسجيل: Aug 2007
المشاركات: 408
شكراً: 34
تم شكره 8 مرة في 5 مشاركة
معدل تقييم المستوى:2
![]() |
Collecting Data Items: الصف ArrayList
Collecting Data Items أحببت مشاركتم في منتداكم الذي يذخر بالمميزين أمثال الاستاذ النبهاني وغيره حيث أني معجب به جدا لنبدأ درسنا بالتعرف عن كيفية تخزين البيانات ومعالجتها. يوجد العديد من الصفوف التي تمكننا من التعامل مع البيانات، هذه الصفوف موجودة في فضاء الأسماء System.Collections منها: ArrayList، SortedList، Queue، Stack، Hashtable، BitArray، StringCollection، StringDictionary، ListDictionary، HybridDictionary، NameValueCollection. إضافة وحذف عناصر: الصف ArrayList: تسمح لنا بتخزين أي كائنات نشاء حيث يقبل الاجراء Add كائن (Object) الكود التالي يوضح كيفية إضافة عناصر إليها: كود:
using System.Collections;
ArrayList coll = new ArrayList();
// Add individual items to the collection
string s = "Hello";
coll.Add(s);
coll.Add("hi");
coll.Add(50);
coll.Add(new object());
كود:
string[] anArray =
new string[] { "more", "or", "less" };
coll.AddRange(anArray);
object[] anotherArray =
new object[] { new object(), new ArrayList() };
coll.AddRange(anotherArray);
كود:
coll.Insert(3, "Hey all");
string[] moreStrings =
new string[] { "goodnight", "see ya" };
coll.Insert(4, moreStrings);
كود:
coll[3] = "Hey All"; التابع Remove يقوم بحذف كائن محدد من المجمع ولا يظهر أي شيء يدل على أن عملية الحذف قد تمت، أم أنه في الاصل لم يجد هذا الكائن الذي طلبت حذفه، الكود التالي يوضح استخدام التابع Remove: كود:
coll.Add("Hello");
coll.Remove("Hello");
كود:
// Remove first four item in ArrayList coll.RemoveAt(0); // Removes first four items in array list coll.RemoveRange(0, 4); والتابع IndexOf فهو مفيد من أجل معرفة رقم دليل (الفهرسة) لكائن ما، طبعا إن كان موجودا وفي حال أن الكائن لم يكن موجودا فإن التابع سيعيد القيمة -1. التايع Contain من اسمه يدل على أنه تابع يستخدم من أجل التحقق من وجود كائن ما ضمن المجمع، الكود التالي يوضح كيفية استخدام هذه التوابع: كود:
string myString = "My String";
if (coll.Contains(myString))
{
int index = coll.IndexOf(myString);
coll.RemoveAt(index);
}
else
{
coll.Clear();
}
يمكن استخدام الدليل لتحديد الكائن المراد ضمن المجمع كما في المثال التالي: كود:
for (int i = 0; i < coll.Count; i++)
{
Console.WriteLine(coll[i]);
}
الجدول التالي يبين خصائص الواجهة IEnumerable: Current (للقراءة) يعطي الكائن الحالي في المجمع. الجدول التالي يوضح أهم الاجراءات الموجودة ضمن الواجهة IEnumerable: MoveNext يقوم هذا التابع بالانتقال إلى الكائن التالي ضمن المجمع، ويحدد بنفس الوقت من خلال القيمة المنطقية التي يعيدها فيما إذا كان قد وصل إلى نهاية المجمع. Reset هذا الاجراء يقوم بالانتقال إلى ما فبل الكائن الأول الموجود ضمن المجمع لكي يتيح للتابع MoveNext الوقوف على الكائن الأول ضمن المجمع. المثال التالي يوضح كيفية الاستفادة من الواجهة IEnumerable: كود:
IEnumerator enumerator = coll.GetEnumerator();
while (enumerator.MoveNext())
{
Console.WriteLine(enumerator.Current);
}
كود:
ArrayList newColl = new ArrayList();
newColl.Add("Hello");
newColl.Add("Goodbye");
foreach (string item in newColl)
{
Console.WriteLine(item);
}
كود:
IList il = newColl;
for (int i = 0; i < il.Count; i++)
{
Console.WriteLine(il[i]);
}
يحتوي الصف ArrayList على التابع Sort الذي يقوم بعملية ترتيب العناصر المخزنة داخل المجمع، يعتمد التابع Sort في عمله على الصف Comparer هذا الصف الذي بدوره يدعم الواجهة IComparer، هذه الواجهة تحوي تابع واحد فقط وهو Compare الذي يأخذ كائنين ويقارن بينهما الجدول التالي يوضح نتائج المقارنة: الناتج أقل من الصفر يعني أن الكائن الذي على اليسار أقل من الكائن الذي على اليمين. صفر الكائنين متساويين. أكبر من الصفر الكائن الذي على اليسار أكبر من الكائن الذي على اليمين. يمكنك القيام بعملية ترتيب عناصر المجموعة بتنفيذ التعليمة التالية: كود:
coll.Sort(); كود:
coll.Sort(new CaseInsensitiveComparer()); كود:
class DescendingComparer : IComparer
{
#region IComparer Members
CaseInsensitiveComparer _comparer = new CaseInsensitiveComparer();
public int Compare(object x, object y)
{
return _comparer.Compare(y, x);
}
#endregion
}
كود:
coll.Sort(new DescendingComparer()); وجزاكم الله خيرا |
|
|
|
| مرحبا عزيزي الزائر |
| لمشاهدة باقي ردود هذا الموضوع, من فضلك قم بتسجيل الدخول او اضغط هنا للتسجيل. |
|
| أدوات الموضوع | |
| انواع عرض الموضوع | |
|
|
|
|
|