در دنیای برنامهنویسی، مرتبسازی و دسترسی سریع به دادهها اهمیت زیادی دارد. در زبان برنامهنویسی سی شارپ، یکی از ساختارهای دادهای که به شما کمک میکند اطلاعات را همزمان ذخیره و بهطور خودکار مرتبسازی کنید، SortedList است. در این مقاله، با زبانی ساده و روان به بررسی SortedList، نحوه استفاده از آن و کاربردهای عملی آن خواهیم پرداخت.
SortedList چیست؟
SortedList یک ساختار دادهای است که از جفتهای کلید-مقدار (Key-Value Pair) برای ذخیرهسازی اطلاعات استفاده میکند. تفاوت آن با لیستهای معمولی در این است که کلیدهای موجود در SortedList بهطور خودکار به صورت صعودی مرتب میشوند. به این ترتیب، شما نیازی به نوشتن کدی برای مرتبسازی دستی ندارید و این کار بهصورت خودکار انجام میشود.
تعریف SortedList
برای تعریف یک SortedList، باید از کتابخانه System.Collections.Generic استفاده کنید. سپس میتوانید یک شیء از نوع SortedList ایجاد کنید:
SortedList<int, string> sortedList = new SortedList<int, string>();
در این مثال، یک SortedList داریم که کلیدهای آن از نوع int (عدد صحیح) و مقادیر آن از نوع string هستند.
نحوه اضافه کردن عناصر به SortedList
برای اضافه کردن دادهها به SortedList، از متد Add استفاده میشود. در این متد، باید ابتدا کلید و سپس مقدار مربوط به آن را وارد کنید:
sortedList.Add(3, "سه");
sortedList.Add(1, "یک");
sortedList.Add(2, "دو");
در اینجا، مقادیر به صورت خودکار بر اساس کلید مرتب میشوند. اگر بخواهید لیست را چاپ کنید، نتیجه به شکل زیر خواهد بود:
foreach (var item in sortedList)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
// خروجی:
// 1: یک
// 2: دو
// 3: سه
ویژگیهای مهم SortedList
- مرتبسازی خودکار: کلیدها به صورت خودکار به ترتیب صعودی مرتب میشوند، به همین دلیل دیگر نیازی به مرتبسازی دستی نیست.
- دسترسی سریع به دادهها: SortedList به شما این امکان را میدهد که با استفاده از کلیدها، به سرعت به مقادیر دسترسی پیدا کنید.
- نگهداری جفتهای کلید-مقدار: مانند یک Dictionary، دادهها به صورت جفتهای کلید-مقدار ذخیره میشوند.
دسترسی به عناصر در SortedList
برای دسترسی به عناصر SortedList میتوانید از کلیدها استفاده کنید. مثلاً اگر بخواهید مقدار مربوط به کلید 2 را دریافت کنید:
string value = sortedList[2];
Console.WriteLine(value); // خروجی: دو
مثالهای کاربردی
1. مدیریت موجودی انبار
فرض کنید شما در یک انبار کار میکنید و کالاهایی با کدهای مختلف دارید. با استفاده از SortedList، میتوانید موجودی انبار را مرتب و بهروز نگه دارید. این مثال را در نظر بگیرید:
SortedList<string, int> inventory = new SortedList<string, int>();
inventory.Add("A101", 10); // کالای A101 با تعداد 10
inventory.Add("A102", 20); // کالای A102 با تعداد 20
foreach (var item in inventory)
{
Console.WriteLine($"کد کالا: {item.Key}, تعداد: {item.Value}");
}
// خروجی:
// کد کالا: A101, تعداد: 10
// کد کالا: A102, تعداد: 20
با استفاده از این روش، میتوانید کالاها را بر اساس کدشان مرتب کنید و به راحتی موجودی انبار را مدیریت نمایید.
2. ثبت نمرات دانشجویان
فرض کنید میخواهید نمرات دانشجویان را بر اساس شماره دانشجویی مرتب کنید. برای این کار میتوانید از SortedList استفاده کنید:
SortedList<int, float> studentGrades = new SortedList<int, float>();
studentGrades.Add(123, 18.5f);
studentGrades.Add(101, 17.0f);
foreach (var grade in studentGrades)
{
Console.WriteLine($"شماره دانشجویی: {grade.Key}, نمره: {grade.Value}");
}
// خروجی:
// شماره دانشجویی: 101, نمره: 17.0
// شماره دانشجویی: 123, نمره: 18.5
همانطور که مشاهده میکنید، نمرات دانشجویان بر اساس شماره دانشجویی مرتب شده و سپس نمایش داده میشوند.
3. استفاده از SortedList در سیستمهای رتبهبندی
اگر بخواهید در یک سیستم رتبهبندی، امتیازات کاربران را بر اساس کلید کاربری آنها ذخیره و مرتب کنید، SortedList گزینه مناسبی است. در این صورت به راحتی میتوانید کاربران را بر اساس کلیدهایشان مرتب کرده و امتیازات را بهروزرسانی کنید.
نکات مهم
- کلیدها باید یکتا باشند: در SortedList هر کلید باید یکتا باشد و نمیتوانید دو عنصر با کلیدهای مشابه اضافه کنید.
- مرتبسازی صعودی: SortedList کلیدها را به صورت صعودی مرتب میکند. اگر بخواهید کلیدها را به ترتیب نزولی مرتب کنید، باید روشهای دیگری مانند SortedDictionary یا استفاده از کلاسهای دیگر را در نظر بگیرید.
- استفاده مناسب در پروژهها: SortedList برای پروژههایی که نیاز به مرتبسازی خودکار دادهها دارند بسیار مناسب است. اما در صورتی که مرتبسازی پیچیدهتری نیاز دارید، ممکن است از ساختارهای دادهای دیگر نیز استفاده کنید.
جمعبندی
در این مقاله، با مفهوم SortedList در سی شارپ آشنا شدیم و دیدیم که چگونه میتوان از آن برای ذخیره و مرتبسازی جفتهای کلید-مقدار استفاده کرد. همچنین، با مثالهای کاربردی، از جمله مدیریت موجودی انبار و ثبت نمرات دانشجویان، به کاربردهای واقعی این ساختار داده پرداختیم. SortedList یک ابزار قدرتمند و کارآمد برای برنامهنویسان است که به کمک آن میتوان اطلاعات را مرتب و به راحتی مدیریت کرد..
اگر میخواهید در سی شارپ به صورت حرفهای برنامهنویسی کنید، توصیه میشود در دورههای آموزش سی شارپ باگتو شرکت کنید. این دورهها بسیار مفید و جامع هستند.
با مطالعه این مقاله، امیدواریم که با نحوه کار با SortedList در سی شارپ آشنا شده باشید. این دادهساختار بسیار مفید و کاربردی است که به شما در مدیریت بهتر دادهها و انجام عملیات مرتبسازی به صورت اتوماتیک کمک میکند. اگر علاقهمند به یادگیری بیشتر در زمینههای مختلف سی شارپ هستید، میتوانید مقاله ما در موضوعات مختلف مانند Collection در C# را مطالعه کنید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید