برنامه نویسی ۷۶ بازدید

دیکشنری یکی از کاربردی‌ترین «ساختار های داده» (Data Structures) در زبان‌های برنامه نویسی محسوب می‌شود. این نوع داده ویژگی‌های منحصربه‌فردی در مقایسه با سایر ساختارهای داده‌ دارد که کار را برای دسترسی به داده‌ها آسان کرده است. در مقاله حاضر، به معرفی ویژگی‌های دیکشنری در سی شارپ پرداخته و سپس نحوه کار با آن در این زبان به همراه مثال ارائه می‌شود.

دیکشنری در سی شارپ چیست ؟

دیکشنری ساختار داده‌ای است که از آن می‌توان به منظور ذخیره آیتم‌ها در قالب «کلید-مقدار» (Key-Value) استفاده کرد. به عبارتی، با استفاده از کلیدهای دیکشنری، می‌توان به مقادیر آن‌ها دسترسی داشت. این ساختار داده مشابه ساختار داده Hashmap در زبان برنامه نویسی جاوا است. کلیدهای دیکشنری باید مقادیر منحصربه‌فردی داشته باشند اما می‌توان نوع داده (Data Type) متفاوتی برای تعریف کلیدها استفاده کرد.

نوع داده دیکشنری در سی شارپ

ویژگی های ساختار داده دیکشنری در سی شارپ چیست ؟

ساختار داده دیکشنری در سی شارپ ویژگی‌های منحصربه‌فردی دارد که در ادامه فهرست شده‌اند:

  • کلیدها نمی‌توانند «تهی» (Null) باشند اما می‌توانند مقدار (Value) تهی داشته باشند.
  • از کلیدهای تکراری نمی‌توان در دیکشنری استفاده کرد.
  •  آیتم‌ها در دیکشنری با استفاده از کلید اندیس‌گذاری می‌شوند. به عبارتی، تنها با استفاده از کلید می‌توان به مقدار متناظر با آن کلید دسترسی داشت.
  • نمی‌توان به کلیدی که از قبل تعریف شده و مقداری برای آن تعیین شده است، مقدار جدیدی تخصیص داد.

در ادامه، پس از معرفی فیلم‌های آموزش سی شارپ، به نحوه کار با دیکشنری در سی شارپ و عملیات مرتبط با این نوع ساختار داده پرداخته می‌شود.

نحوه ساخت دیکشنری در سی شارپ چگونه است ؟

به منظور استفاده از دیکشنری، باید اول «فضای نام» (Namespace) System.Collections.Generic  را در ابتدای کدها فراخوانی کرد. این فضای نام کلاس دیکشنری را در خود دارد. شامل کلاس دیکشنری می‌شود. در ادامه، دستور و کد مربوط به فراخوانی این فضای نام در برنامه آمده است.

using System.Collections.Generic;

سپس، باید نوع داده کلید و مقدار را برای دیکشنری مشخص کرد و در واقع اعلان دیکشنری را انجام داد. قطعه کد زیر، نحوه مشخص کردن نوع داده آیتم‌های دیکشنری را نشان می‌دهد. مطابق این دستور، دیکشنری جدیدی با عنوان pets ایجاد می‌شود که کلیدهای این دیکشنری از نوع عددی و مقادیر آن‌ها از نوع رشته است.

Dictionary<int, string> pets = new Dictionary<int, string>();

معرفی فیلم های آموزش سی شارپ

مجموعه فیلم های آموزش سی شارپ

فرادرس برای علاقه‌مندان به یادگیری برنامه نویسی سی شارپ مجموعه‌ای از دوره‌های آموزشی جامع و کاربردی را فراهم کرده است که این دوره‌ه فیلم‌های آموزشی مقدماتی تا پیشرفته و پروژه‌محور زبان سی شارپ را شامل می‌شود. افراد می‌توانند از دوره‌های جامع سی شارپ در راستای تقویت مهارت برنامه نویسی خود استفاده کنند و از آموزش‌های پروژه‌محور فرادرس بهره بگیرند. در تصویر فوق تنها برخی از دوره‌های آموزشی مجموعه آموزش سی شارپ فرادرس مشاهده می‌شوند.

شیوه اضافه کردن آیتم جدید به دیکشنری در زبان سی شارپ چگونه است ؟

می‌توان در زمان تعریف دیکشنری، آیتم‌های آن را نیز مشخص کرد. همچنین، روش دیگر این است که پس از تعریف اولیه دیکشنری یا همان اعلان آن، در ادامه برنامه، آیتم‌های جدیدی را به آن اضافه کرد. به منظور اضافه کردن آیتم‌های دیکشنری در سی شارپ، می‌توان از قطعه کد زیر استفاده کرد.

Dictionary<int, string> pets = new Dictionary<int, string>()
{
    {1001, "Mia"},
    {1002, "Oscar"},
    {1003, "Birdie"},
    {1004, "Bluey"},
    {1005, "Leo"},
    {1006, "Travis"}
};

از متد Add()  دیکشنری می‌توان به منظور اضافه کردن آیتم جدید به دیکشنری استفاده کرد که از قبل در برنامه ایجاد شده است. در ادامه، نحوه استفاده از این متد برای اضافه کردن آیتم جدید به دیکشنری pets  آمده است.

pets.Add(1007, "Snowy");

نحوه دسترسی به مقادیر دیکشنری در سی شارپ چگونه است ؟

با استفاده از کلیدها، می‌توان به آیتم‌های دیکشنری دسترسی داشت. بدین منظور،‌ می‌توان از نام دیکشنری به همراه نام کلیدی استفاده کرد که در علامت براکت ([ ]) نوشته شده باشد. در قطعه کد زیر، نحوه دسترسی به مقدار دیکشنری با استفاده از نام کلید ملاحظه می‌شود.

var pet_variable = pet[1001];
Console.WriteLine(pet);

از حلقه for  نیز می‌توان به منظور دسترسی به تمامی مقادیر کلیدهای دیکشنری استفاده کرد. در ادامه، مثالی از نحوه کاربرد این حلقه برای بازگرداندن تمامی مقدارهای کلیدهای دیکشنری ملاحظه می‌شود.

for(int x=0; i< pets.Count; x++)
{
	Console.WriteLine("{0} and {1}", pets.Keys.ElementAt(x),
						pets[ pets.Keys.ElementAt(x)]);
}

چگونه می توان مقادیر کلیدهای دیکشنری را در زبان سی شارپ بروزرسانی کرد ؟

تغییر مقادیر کلیدهای دیکشنری به‌سادگی انجام می‌شود. کافی است با استفاده از علامت تساوی (==)، به کلید مد نظر خود، مقدار جدیدی را تخصیص دهیم تا مقدار جدید، جایگزین مقدار قبلی کلید شود. در قطعه کد زیر، نمونه‌ای از نحوه به‌روزرسانی مقدار کلید دیکشنری در سی شارپ ملاحظه می‌شود.

pets[1001] = "Maya";

چگونه می توان آیتم های دیکشنری را در سی شارپ حذف کرد ؟

به منظور حذف آیتم‌های دیکشنری در سی شارپ می‌توان دو حالت را در نظر گرفت:

  • حذف تمامی آیتم‌های دیکشنری با متد clear
  • حذف آیتم خاص دیکشنری با متد remove

در قطعه کد زیر، نحوه استفاده از متد clear برای حذف تمامی آیتم‌های دیکشنری ملاحظه می‌شود.

pets.Clear();

شیوه استفاده از متد remove برای حذف آیتم خاص از دیکشنری نیز در قطعه کد زیر ملاحظه می‌شود.

pets.Remove(1002);

چگونه می توان وجود کلید یا مقداری خاص را در دیکشنری بررسی کرد؟

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

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

در ادامه، قطعه کدی ملاحظه می‌شود که نحوه استفاده از این دو متد را در قالب دستور شرطی if  در سی شارپ نشان می‌دهد.

// Creating a dictionary
// using Dictionary<TKey,TValue> class
Dictionary<int, string> My_dict = new Dictionary<int, string>(); 

// Adding key/value pairs in the 
// Dictionary Using Add() method
My_dict.Add(1123, "Welcome");
My_dict.Add(1124, "to");
My_dict.Add(1125, "GeeksforGeeks");
            
// Using ContainsKey() method to check
// the specified key is present or not
if (My_dict.ContainsKey(1122)==true)
{
    Console.WriteLine("Key is found...!!");
}
  
else
{
    Console.WriteLine("Key is not found...!!");
}
            
// Using ContainsValue() method to check
// the specified value is present or not
if (My_dict.ContainsValue("GeeksforGeeks")==true)
{
    Console.WriteLine("Value is found...!!");
}
  
else
{
Console.WriteLine("Value is not found...!!");
}

خروجی قطعه کد فوق در زیر ملاحظه می‌شود.

Key is not found...!!
Value is found...!!

جمع‌بندی

ساختار داده دیکشنری با داشتن ویژگی‌های منحصربه‌فرد و کاربردی، به عنوان یکی از پرکاربردترین ساختارهای داده در زبان‌های برنامه نویسی تلقی می‌شود. در مقاله حاضر، سعی شد تا به ویژگی‌های این ساختار داده اشاره و نحوه استفاده از آن در زبان سی شارپ به همراه مثال ارائه شود.

اگر این مطلب برای شما مفید بوده است، آموزش‌ها و مطالب زیر نیز به شما پیشنهاد می‌شوند:

بر اساس رای ۹ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

مینو نساجیان دانش‌آموخته کارشناسی ارشد رشته زبانشناسی رایانشی است؛ به حوزه هوش مصنوعی علاقه دارد و در مجله فرادرس به عنوان تولیدکننده محتوا در زمینه‌های علوم کامپیوتر، هوش مصنوعی و برنامه‌نویسی فعالیت می‌کند.