Dictionary در سی شارپ
در زبان #C عبارت <Dictionary<TKey, TValue یک کالکشن جنریک است که جفت های کلید-مقدار را بدون ترتیب خاصی ذخیره می کند.
خصوصیات و ویژگی های Dictionary
1- <Dictionary<TKey, TValue جفت های کلید-مقدار را ذخیره می کند.
2- در فضای نام System.Collections.Generic قرار می گیرد.
3- Interface به نام <IDictionary<TKey, TValue را پیاده سازی می کند.
4- کلیدها باید منحصر به فرد باشند و نمی توانند تهی باشند.
5- مقادیر می توانند تهی یا تکراری باشند.
6- به مقادیر می توان با قرار دادن کلید مرتبط درindexer به عنوان مثال myDictionary[key] دسترسی داشت.
7- عناصر به عنوان اشیاء <KeyValuePair<TKey, TValue ذخیره می شوند.
ایجاد Dictionary
می توانید شی <Dictionary<TKey, TValue را با قراردادن نوع کلیدها و مقادیری که می تواند ذخیره کند ایجاد کنید. مثال زیر نحوه ایجاد دیکشنری و افزودن جفت های کلید-مقدار را نشان می دهد.
خروجی قطعه کد بالا به صورت زیر می باشد.
در مثال بالا، numberNames یک دیکشنری از نوع <Dictionary<int, string است، بنابراین می تواند کلیدهای int و مقادیر رشته را ذخیره کند. به همین ترتیب، cities یک دیکشنری از نوع <Dictionary<string, string است، بنابراین می تواند کلیدهای رشته و مقادیر رشته را ذخیره کند. Dictionary نمی تواند شامل کلیدهای تکراری یا تهی باشد، در حالی که مقادیر می توانند تکراری یا تهی باشند. کلیدها باید منحصر به فرد باشند، در غیر این صورت، یک استثنای زمان اجرا (runtime exception) ایجاد می شود.
دسترسی به عناصر Dictionary
با استفاده از indexer می توان به دیکشنری دسترسی پیدا کرد. یک کلید برای بدست آوردن مقدار مربوطه مشخص کنید. همچنین می توانید از متد ()ElementAt برای دریافت KeyValuePair از ایندکس مشخص شده استفاده کنید.
خروجی قطعه کد بالا به صورت زیر می باشد.
به روز رسانی Dictionary
برای به روز رسانی یک دیکشنری در زبان سی شارپ مقدار یک کلید را با تعیین کلید در indexer به روز کنید. اگر کلیدی در فرهنگ لغت وجود نداشته باشد، KeyNotFoundException ایجاد می شود، بنابراین قبل از دسترسی به کلیدهای ناشناخته از متد ()ContainsKey استفاده کنید.
خروجی قطعه کد بالا به صورت زیر می باشد.
حذف عناصر در Dictionary
متد ()Remove یک جفت کلید-مقدار موجود را از دیکشنری حذف می کند. متد ()Clear تمام عناصر دیکشنری را حذف می کند.
خروجی قطعه کد بالا به صورت زیر می باشد.