کد دیکشنری در سی شارپ
دیکشنری ها در سی شارپ یکی از ساختارهای داده ای قدرتمند و کارآمد هستند. این ساختار به ما امکان میدهد که دادهها را به صورت کلید-مقدار ذخیره کنیم. به عبارت دیگر، هر مقدار در دیکشنری مرتبط با یک کلید منحصر به فرد است. این ویژگی باعث میشود که جستجو و دسترسی به دادهها سریع و بهینه باشد.
تعریف دیکشنری
برای تعریف یک دیکشنری در سی شارپ، از فضای نام `System.Collections.Generic` استفاده میکنیم. یک دیکشنری به صورت زیر تعریف میشود:
```csharp
using System.Collections.Generic;
Dictionary<int, string> myDictionary = new Dictionary<int, string>();
```
در این مثال، کلید از نوع `int` و مقدار از نوع `string` است.
اضافه کردن عناصر
برای افزودن عناصر به دیکشنری، میتوانیم از متد `Add` استفاده کنیم:
```csharp
myDictionary.Add(1, "One");
myDictionary.Add(2, "Two");
```
دسترسی به عناصر
برای دسترسی به یک مقدار، میتوانیم از کلید مربوطه استفاده کنیم:
```csharp
string value = myDictionary[1]; // "One"
```
بررسی وجود کلید
قبل از دسترسی به یک کلید، بهتر است بررسی کنیم که آیا آن کلید وجود دارد یا نه:
```csharp
if (myDictionary.ContainsKey(1))
{
// کلید وجود دارد
}
```
حذف عناصر
برای حذف یک عنصر میتوانیم از متد `Remove` استفاده کنیم:
```csharp
myDictionary.Remove(1);
```
پیمایش دیکشنری
برای پیمایش دیکشنری، میتوانیم از یک حلقه `foreach` استفاده کنیم:
```csharp
foreach (var item in myDictionary)
{
Console.WriteLine($"کلید: {item.Key}, مقدار: {item.Value}");
}
```
نتیجهگیری
دیکشنریها در سی شارپ ابزار بسیار مفیدی هستند. آنها به ما امکان میدهند که دادهها را به شکلی منظم و کارآمد ذخیره کنیم. با استفاده از دیکشنریها، میتوانیم به سرعت به دادهها دسترسی پیدا کنیم و عملیات مختلفی را بر روی آنها انجام دهیم. با یادگیری مفاهیم و متدهای مختلف دیکشنری، میتوانید قدرت برنامهنویسی خود را افزایش دهید.
کد دیکشنری در سیشارپ: راهنمای جامع و کامل
در زبان برنامهنویسی سیشارپ، دیکشنری یا همان Dictionary یکی از ساختارهای دادهای قدرتمند و مهم است که اجازه میدهد کلید-مقدار (key-value) را به راحتی مدیریت کنید. این ساختار، شبیه به جدول یا لیستی است که هر کلید منحصربفرد، یک مقدار را نگه میدارد. در ادامه، به صورت کامل و جزئی، مفاهیم، نحوه استفاده و نمونه کدهای مرتبط با دیکشنری میپردازیم.
تعریف و کاربرد دیکشنری در سیشارپ
در سیشارپ، دیکشنری نوعی مجموعه است که در آن، هر کلید با یک مقدار مرتبط است. این ساختار، بسیار سریع است و عملیات جستوجو، افزودن، حذف و بروزرسانی در آن، بهصورت کارآمد انجام میشود. معمولاً برای نگهداری دادههایی که نیاز به جستوجو بر اساس کلید دارند، استفاده میشود، مانند نگهداری لیستی از کاربران با شناسههای منحصربفرد، محصولات، یا هر نوع دادهای که نیاز به دسترسی سریع دارد.
نحوه تعریف و نمونهسازی دیکشنری
برای استفاده از دیکشنری، ابتدا باید فضای حافظه را تعریف کنید. نمونهای ساده:
```csharp
Dictionary<int, string> myDictionary = new Dictionary<int, string>();
```
در اینجا، کلیدها از نوع `int` هستند و مقادیر از نوع `string`. این یعنی، هر عدد صحیح به یک رشته متن متصل است.
افزودن عناصر به دیکشنری
برای افزودن آیتمها، از متد `Add()` استفاده میشود:
```csharp
myDictionary.Add(1, "Apple");
myDictionary.Add(2, "Banana");
```
همچنین، میتوانید با استفاده از سینتکس براکتها، آیتم جدید اضافه کنید:
```csharp
myDictionary[3] = "Orange";
```
دسترسی به مقادیر
دسترسی به مقادیر بر اساس کلید، ساده است:
```csharp
string fruit = myDictionary[1]; // "Apple"
```
ولی باید مراقب باشید، چون اگر کلید وجود نداشته باشد، استثنا (`KeyNotFoundException`) پرتاب میشود. برای جلوگیری، میتوانید از متد `TryGetValue()` بهره ببرید:
```csharp
if (myDictionary.TryGetValue(4, out string value))
{
Console.WriteLine(value);
}
else
{
Console.WriteLine("کلید یافت نشد");
}
```
حذف عناصر
برای حذف آیتمها، از متد `Remove()` استفاده میشود:
```csharp
myDictionary.Remove(2); // حذف کلید ۲
```
اگر میخواهید کلید خاصی را پیدا و حذف کنید، این بهترین راه است.
بررسی وجود کلید یا مقدار
برای بررسی وجود یک کلید:
```csharp
if (myDictionary.ContainsKey(1))
{
Console.WriteLine("کلید ۱ وجود دارد");
}
```
برای بررسی وجود مقدار:
```csharp
if (myDictionary.ContainsValue("Orange"))
{
Console.WriteLine("مقدار Orange وجود دارد");
}
```
حلقه زدن روی دیکشنری
برای پیمایش آیتمها، از حلقه `foreach` استفاده میشود:
```csharp
foreach (var kvp in myDictionary)
{
Console.WriteLine($"کلید: {kvp.Key}, مقدار: {kvp.Value}");
}
```
نکات مهم و بهینهسازیها
- کلیدها باید یکتا و غیر تکراری باشند.
- از `TryGetValue()` برای دسترسی ایمن استفاده کنید.
- برای افزودن آیتمهای جدید، میتوانید از سینتکس براکت یا `Add()` بهره ببرید.
- دیکشنریها به صورت خودکار ظرفیت اولیه دارند، اما میتوانید آن را تنظیم کنید.
- هنگام حذف، اگر کلید وجود نداشته باشد، عملیات خطایی ایجاد نمیکند.
نمونه کامل برنامه
در ادامه، نمونهای کامل و کاربردی از دیکشنری در سیشارپ آورده شده است:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// تعریف دیکشنری
Dictionary<string, int> studentScores = new Dictionary<string, int>();
// افزودن دادهها
studentScores.Add("Ali", 85);
studentScores["Sara"] = 92;
studentScores["Reza"] = 78;
// نمایش محتویات
Console.WriteLine("لیست نمرات:");
foreach (var student in studentScores)
{
Console.WriteLine($"دانشآموز: {student.Key}, نمره: {student.Value}");
}
// جستوجو
if (studentScores.TryGetValue("Sara", out int score))
{
Console.WriteLine($"نمره سارا: {score}");
}
// حذف یک عنصر
studentScores.Remove("Reza");
// بررسی وجود کلید
if (studentScores.ContainsKey("Reza"))
{
Console.WriteLine("Reza در لیست است");
}
else
{
Console.WriteLine("Reza حذف شده است");
}
}
}
```
جمعبندی
در آخر، دیکشنری در سیشارپ، ساختاری انعطافپذیر و قدرتمند است که عملیاتهای مربوط به کلید-مقدار را بسیار ساده و سریع میکند. با یادگیری کامل نحوه افزودن، جستوجو، حذف و پیمایش، میتوانید برنامههای کارآمد و بهینه بسازید. این ساختار، در پروژههای بزرگ، مورد نیاز است، چون سرعت و کارایی در جستوجوهای متعدد، اهمیت بالایی دارد.
اگر نیاز دارید، میتوانم توضیحات بیشتری، مثالهای کاربردی یا نکات پیشرفتهتر برایتان ارائه دهم!