TGViewer
DotNet | دات نت DotNet | دات نت @dotnetcode · 1.22K subscribers
Post #3026 940
جادوی Dictionary در سی‌شارپ: چرا اینقدر سریع‌اند؟

1. نوع Dictionary چیست؟
دیکشنری در سی‌شارپ ساختاری است که داده‌ها را به‌صورت جفت‌کلید-مقدار ذخیره می‌کند. برای دسترسی سریع به داده‌ها، تنها نیاز به کلید داریم که باید منحصربه‌فرد باشد.

2. راز سرعت: جدول هش
دیکشنری از جدول هش (Hash Table) برای جستجوهای سریع استفاده می‌کند. در این روش، تابع هش برای تبدیل کلید به کد هش استفاده می‌شود که مستقیماً به آدرس ذخیره‌سازی در حافظه اشاره می‌کند.

3. فرآیند هش کردن (Hashing)
کلیدها با استفاده از تابع هش به عددی ثابت (کد هش) تبدیل می‌شوند که به دیکشنری کمک می‌کند داده‌ها را سریع پیدا کند. این فرآیند زمان جستجو را به O(1) کاهش می‌دهد.

4. برخورد هش (Hash Collision)
اگر دو کلید کد هش یکسان تولید کنند، به آن برخورد هش می‌گویند. برای مدیریت این مشکل، دیکشنری از زنجیره‌سازی (Chaining) استفاده می‌کند تا لیستی از جفت‌های برخوردی ایجاد کند.

5. مقایسه با آرایه و لیست
دیکشنری برای دسترسی سریع به داده‌ها بر اساس کلید استفاده می‌شود. در حالی که آرایه‌ها و لیست‌ها بیشتر برای دسترسی بر اساس اندیس مناسب هستند.

6. مثال ساده
var employees = new Dictionary<int, string>();
employees.Add(101, "علی");
employees[102] = "محمد";
if (employees.TryGetValue(103, out var name))
Console.WriteLine(name);
else
Console.WriteLine("کارمند یافت نشد");


7. اهمیت GetHashCode()
برای استفاده از Dictionary با انواع سفارشی، باید متد GetHashCode() و Equals() را به درستی پیاده‌سازی کنید تا عملکرد بهینه باشد.

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

#سی_شارپ #دات‌نت #Dictionary #برنامه‌نویسی

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
  • 👍 9
  • 🔥 1
More from @dotnetcode
  1. Sep 16, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  2. Jul 10, 2026#مهندس_فکر_کن قسمت:4️⃣ 🎯مصاحبه‌کننده: ءCache Stampede چیست؟ فرض کن یک کلید در Cache داری:…
  3. Jun 12, 20261. Indexes منابع پیشنهادی این چالش که برای من اینها جذاب بوده و هست. A. Designing Data-Int…
  4. Jun 9, 2026آینده هوش مصنوعی و مهندسی کامپیوتر هوش مصنوعی مهندسی را نابود نمی‌کند، اما در سکوت در حال…
  5. Jun 4, 2026تحولی بزرگ در دنیای سی‌شارپ: ویژگی هیجان‌انگیز Union Types در C# 15! بالاخره یکی از جذاب‌ت…
  6. Feb 8, 2026👩‍💻 پستگرس رو ۲.۵ برابر سریع‌تر کن! تصور کن مغز متفکر دیتابیست (Parser) رو بدی دست هوش م…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →