سه شنبه ۲۷ شهريور ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش سی شارپ - کلاس SortedList

کلاس SortedList مجموعه‌ای از جفت‌های کلید و مقدار را نمایش می‌دهد که بر اساس کلیدها مرتب شده‌اند و از طریق کلید و اندیس قابل دسترسی هستند.

یک لیست مرتب یک ترکیب از یک آرایه و جدول هش است. این شامل لیستی از موارد است که می‌توان با استفاده از یک کلید یا یک اندیس به آنها دسترسی پیدا کرد. اگر به موارد با استفاده از یک اندیس دسترسی پیدا کنید، آن را یک ArrayList می‌نامیم و اگر به موارد با استفاده از یک کلید دسترسی پیدا کنید، آن را یک Hashtable می‌نامیم. مجموعه موارد همیشه بر اساس مقدار کلید مرتب می‌شود.

متدها و خاصیت‌های کلاس SortedList

در جدول زیر، برخی از خاصیت‌های رایج کلاس SortedList لیست شده‌اند −

ردیف خاصیت و توضیحات
1

Capacity (ظرفیت)

مقدار ظرفیت SortedList را دریافت یا تنظیم می‌کند.

2

Count (تعداد)

تعداد عناصر موجود در SortedList را دریافت می‌کند.

3

IsFixedSize (اندازه ثابت)

مقداری را که نشان می‌دهد آیا SortedList اندازه ثابت دارد یا خیر دریافت می‌کند.

4

IsReadOnly (فقط خواندنی)

مقداری را که نشان می‌دهد آیا SortedList فقط خواندنی است یا خیر دریافت می‌کند.

5

Item (مورد)

مقدار مرتبط با یک کلید خاص را در SortedList دریافت یا تنظیم می‌کند.

6

Keys (کلیدها)

کلیدها را در SortedList دریافت می‌کند.

7

Values (مقادیر)

مقادیر را در SortedList دریافت می‌کند.

در جدول زیر، برخی از متدهای رایج کلاس SortedList لیست شده‌اند −

ردیف متد و توضیحات
1

public virtual void Add(object key, object value);

یک عنصر با کلید و مقدار مشخص شده را به SortedList اضافه می‌کند.

2

public virtual void Clear();

تمام عناصر موجود در SortedList را حذف می‌کند.

3

public virtual bool ContainsKey(object key);

تشخیص می‌دهد آیا SortedList حاوی یک کلید خاص است یا خیر.

4

public virtual bool ContainsValue(object value);

تشخیص می‌دهد آیا SortedList حاوی یک مقدار خاص است یا خیر.

5

public virtual object GetByIndex(int index);

مقدار موجود در اندیس مشخص شده در SortedList را دریافت می‌کند.

6

public virtual object GetKey(int index);

کلید موجود در اندیس مشخص شده در SortedList را دریافت می‌کند.

7

public virtual IList GetKeyList();

کلیدها را در SortedList دریافت می‌کند.

8

public virtual IList GetValueList();

مقادیر را در SortedList دریافت می‌کند.

9

public virtual int IndexOfKey(object key);

شاخص صفرمبنای کلید مشخص شده را در SortedList باز می‌گرداند.

10

public virtual int IndexOfValue(object value);

شاخص صفرمبنای اولین وقوع مقدار مشخص شده را در SortedList باز می‌گرداند.

11

public virtual void Remove(object key);

عنصری با کلید مشخص شده را از SortedList حذف می‌کند.

12

public virtual void RemoveAt(int index);

عنصری در اندیس مشخص شده در SortedList را حذف می‌کند.

13

public virtual void TrimToSize();

ظرفیت را به تعداد واقعی عناصر موجود در SortedList تنظیم می‌کند.

مثال

مثال زیر مفهوم را نشان می‌دهد −

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         SortedList sl = new SortedList();
         
         sl.Add("001", "Zara Ali");
         sl.Add("002", "Abida Rehman");
         sl.Add("003", "Joe Holzner");
         sl.Add("004", "Mausam Benazir Nur");
         sl.Add("005", "M. Amlan");
         sl.Add("006", "M. Arif");
         sl.Add("007", "Ritesh Saikia");
         
         if (sl.ContainsValue("Nuha Ali")) {
            Console.WriteLine("This student name is already in the list");
         } else {
            sl.Add("008", "Nuha Ali");
         }

         // get a collection of the keys. 
         ICollection key = sl.Keys;

         foreach (string k in key) {
            Console.WriteLine(k + ": " + sl[k]);
         }
      }
   }
}

هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند -

001: Zara Ali
002: Abida Rehman
003: Joe Holzner
004: Mausam Banazir Nur
005: M. Amlan 
006: M. Arif
007: Ritesh Saikia
008: Nuha Ali