
HashSet<T> در سیشارپ
HashSet<T> یک مجموعه مجموعهای (Set) با کارایی بالا در سیشارپ است که در فضای نام System.Collections.Generic قرار دارد. این ساختار داده برای نگهداری مقادیر منحصر به فرد بهینه شده است.
using System.Collections.Generic; HashSet<int> numbers = new HashSet<int>(); numbers.Add(1); // true - اضافه شد numbers.Add(2); // true - اضافه شد numbers.Add(1); // false - تکراری است، اضافه نمیشود Console.WriteLine(numbers.Count); // خروجی: 2
مثال کاربردی:
HashSet<int> numbers = new HashSet<int>(); // اضافه کردن اعداد به HashSet (به ترتیب غیرمرتب) // توجه: HashSet ترتیب ورود را حفظ نمیکند numbers.Add(100); // اضافه کردن عدد 100 numbers.Add(20); // اضافه کردن عدد 20 numbers.Add(3); // اضافه کردن عدد 3 numbers.Add(45); // اضافه کردن عدد 45 numbers.Add(500); // اضافه کردن عدد 500 // حلقه foreach برای پیمایش و نمایش عناصر HashSet // عناصر به ترتیب داخلی HashSet نمایش داده میشوند (نه لزوماً ترتیب ورود) foreach (int num in numbers) { // نمایش هر عدد با یک فاصله بعد از آن // مقدار نمایش داده شده ممکن است متفاوت از ترتیب ورود باشد Console.Write($"{num} "); // خروجی احتمالی: 100 20 3 45 500 (اما میتواند ترتیب دیگری باشد) } // دو خط جدید برای جداسازی بخشهای خروجی Console.WriteLine("\n\nتبدیل به لیست و مرتب سازی:"); // تبدیل HashSet به List برای امکان مرتبسازی // سازنده لیست میتواند یک IEnumerable دریافت کند List<int> sorted = new List<int>(numbers); // مرتبسازی لیست به صورت صعودی (از کوچک به بزرگ) sorted.Sort(); // نمایش اعداد مرتبشده foreach (int num in sorted) { // نمایش هر عدد مرتبشده Console.Write($"{num} "); // خروجی قطعی: 3 20 45 100 500 (همیشه به این ترتیب خواهد بود) }
Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com