تُعد القوائم بنية بيانات أساسية في C#، وتوفر طريقة ديناميكية وفعالة لإدارة مجموعات العناصر. إن إزالة العناصر من قائمة عملية شائعة، ويوفر C# عدة طرق لإنجاز ذلك. تستعرض هذه المقالة ثلاثة أساليب رئيسية: Remove()
، وRemoveAt()
، وRemoveRange()
، مع تسليط الضوء على استخدامها واختلافاتها.
جدول المحتويات
- إزالة العناصر حسب القيمة (Remove())
- إزالة العناصر حسب الفهرس (RemoveAt())
- إزالة نطاقات من العناصر (RemoveRange())
إزالة العناصر حسب القيمة (Remove()
)
تقوم طريقة Remove()
بكفاءة بإزالة أول ظهور لعناصر محددة من القائمة. تعيد true
إذا تم العثور على العنصر وإزالته؛ وإلا، تعيد false
. هذه الطريقة مثالية عندما تعرف قيمة العنصر الذي تريد حذفه، ولكن ليس فهرسه.
using System;
using System.Collections.Generic;
public class RemoveFromList
{
public static void Main(string[] args)
{
List<string> fruits = new List<string>() { "Apple", "Banana", "Orange", "Apple", "Mango" };
Console.WriteLine("القائمة الأصلية: " + string.Join(", ", fruits));
bool removed = fruits.Remove("Apple");
if (removed)
{
Console.WriteLine("تمت إزالة العنصر بنجاح.");
}
else
{
Console.WriteLine("لم يتم العثور على العنصر في القائمة.");
}
Console.WriteLine("القائمة بعد إزالة 'Apple': " + string.Join(", ", fruits));
}
}
إزالة العناصر حسب الفهرس (RemoveAt()
)
تقوم طريقة RemoveAt()
بإزالة العنصر الموجود في فهرس محدد داخل القائمة. تذكر أن فهارس القائمة تبدأ من الصفر. سيؤدي استخدام فهرس غير صالح (أقل من صفر أو أكبر من أو يساوي Count
القائمة) إلى إلقاء استثناء ArgumentOutOfRangeException
. تُفضل هذه الطريقة عندما تعرف موضع العنصر الذي سيتم إزالته.
using System;
using System.Collections.Generic;
public class RemoveFromList
{
public static void Main(string[] args)
{
List<string> fruits = new List<string>() { "Apple", "Banana", "Orange", "Apple", "Mango" };
Console.WriteLine("القائمة الأصلية: " + string.Join(", ", fruits));
fruits.RemoveAt(1);
Console.WriteLine("القائمة بعد إزالة العنصر في الفهرس 1: " + string.Join(", ", fruits));
}
}
إزالة نطاقات من العناصر (RemoveRange()
)
توفر طريقة RemoveRange()
إمكانية إزالة تسلسل متصل من العناصر. تقبل معلمتين: فهرس البدء وعدد العناصر التي سيتم إزالتها. كما هو الحال مع RemoveAt()
، فإن توفير فهارس غير صالحة يؤدي إلى استثناء ArgumentOutOfRangeException
. هذا مفيد بشكل خاص لعمليات الإزالة الضخمة.
using System;
using System.Collections.Generic;
public class RemoveFromList
{
public static void Main(string[] args)
{
List<string> fruits = new List<string>() { "Apple", "Banana", "Orange", "Apple", "Mango" };
Console.WriteLine("القائمة الأصلية: " + string.Join(", ", fruits));
fruits.RemoveRange(1, 2);
Console.WriteLine("القائمة بعد إزالة النطاق: " + string.Join(", ", fruits));
}
}
يعتمد اختيار الطريقة الأنسب على ما إذا كنت تعرف قيمة أو فهرس (فهارس) العنصر (العناصر) المراد إزالته. ضع دائمًا في اعتبارك الاستثناءات المحتملة، خاصةً ArgumentOutOfRangeException
، عند العمل مع RemoveAt()
وRemoveRange()
. يعزز التعامل المناسب مع الأخطاء متانة الكود الخاص بك.