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

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

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

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

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

جدول زیر فهرستی از برخی از خصوصیات متداول کلاس Hashtable را نشان می‌دهد:

سریال خصوصیت و توضیحات
1

Count

تعداد جفت‌های کلید و مقدار موجود در Hashtable را برمی‌گرداند.

2

IsFixedSize

نشان می‌دهد که آیا Hashtable اندازه ثابتی دارد یا نه.

3

IsReadOnly

نشان می‌دهد که Hashtable قابل خواندن است یا خیر.

4

Item

مقدار مرتبط با کلید مشخص شده را برمی‌گرداند یا تنظیم می‌کند.

5

Keys

مجموعه‌ای از کلیدها را در Hashtable برمی‌گرداند.

6

Values

مجموعه‌ای از مقادیر را در Hashtable برمی‌گرداند.

جدول زیر فهرستی از برخی از متدهای متداول کلاس Hashtable را نشان می‌دهد:

سریال متد و توضیحات
1

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

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

2

public virtual void Clear();

تمام عناصر را از Hashtable حذف می‌کند.

3

public virtual bool ContainsKey(object key);

تعیین می‌کند که آیا Hashtable حاوی یک کلید خاص است یا نه.

4

public virtual bool ContainsValue(object value);

تعیین می‌کند که آیا Hashtable حاوی یک مقدار خاص است یا نه.

5

public virtual void Remove(object key);

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

نمونه

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

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         Hashtable ht = new Hashtable();
         
         ht.Add("001", "Zara Ali");
         ht.Add("002", "Abida Rehman");
         ht.Add("003", "Joe Holzner");
         ht.Add("004", "Mausam Benazir Nur");
         ht.Add("005", "M. Amlan");
         ht.Add("006", "M. Arif");
         ht.Add("007", "Ritesh Saikia");
         
         if (ht.ContainsValue("Nuha Ali")) {
            Console.WriteLine("This student name is already in the list");
         } else {
            ht.Add("008", "Nuha Ali");
         }
         
         // Get a collection of the keys.
         ICollection key = ht.Keys;
         
         foreach (string k in key) {
            Console.WriteLine(k + ": " + ht[k]);
         }
         Console.ReadKey();
      }
   }
}

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

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