কম্পিউটার টিউটোরিয়াল

C#-এ SortedList-র নির্দিষ্ট ভ্যালু-এর ইনডেক্স পাওয়া

C#-এ SortedList ক্লাসের IndexOfValue(object value) মেথড ব্যবহার করে নির্দিষ্ট ভ্যালু-এর প্রথম ঘটনার ইনডেক্স পাওয়া যায়। যেহেতু সর্টেড লিস্ট কী অনুযায়ী সর্টেড, ভ্যালু সার্চের জন্য লিনিয়ার সার্চ করা হয় (O(n))। একই ভ্যালু একাধিকবার থাকলে প্রথমটির ইনডেক্স রিটার্ন করে।

উদাহরণ ১: সংখ্যা এবং স্ট্রিং ভ্যালুর ইনডেক্স

using System;
using System.Collections;

public class Demo {
    public static void Main(String[] args) {
        SortedList list1 = new SortedList();
        list1.Add("One", 1);
        list1.Add("Two ", 2);
        list1.Add("Three ", 3);
        list1.Add("Four", 4);
        list1.Add("Five", 5);
        list1.Add("Six", 6);
        list1.Add("Seven ", 7);
        list1.Add("Eight ", 8);
        list1.Add("Nine", 9);
        list1.Add("Ten", 10);

        Console.WriteLine("SortedList1 উপাদান...");
        foreach (DictionaryEntry d in list1) {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        Console.Write("ভ্যালু ৭-এর ইনডেক্স = " + list1.IndexOfValue(7));

        SortedList list2 = new SortedList();
        list2.Add("A", "Accessories");
        list2.Add("B", "Books");
        list2.Add("C", "Smart Wearable Tech");
        list2.Add("D", "Home Appliances");

        Console.WriteLine("\n\nSortedList2 উপাদান...");
        foreach (DictionaryEntry d in list2) {
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.Write("ভ্যালু 'Books'-এর ইনডেক্স = " + list2.IndexOfValue("Books"));
    }
}

আউটপুট

SortedList1 উপাদান...
Eight  8
Five 5
Four 4
Nine 9
One 1
Seven  7
Six 6
Ten 10
Three  3
Two  2
ভ্যালু ৭-এর ইনডেক্স = 5
SortedList2 উপাদান...
A Accessories
B Books
C Smart Wearable Tech
D Home Appliances
ভ্যালু 'Books'-এর ইনডেক্স = 1

উদাহরণ ২: একাধিক ভ্যালুর ইনডেক্স খোঁজা

using System;
using System.Collections;

public class Demo {
    public static void Main(String[] args) {
        SortedList list = new SortedList();
        list.Add("One", "Finance");
        list.Add("Two", "Marketing");
        list.Add("Three", "Sales");
        list.Add("Four", "Purchase");
        list.Add("Five", "Operations");
        list.Add("Six", "IT");

        Console.WriteLine("SortedList উপাদান...");
        foreach (DictionaryEntry d in list) {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        Console.WriteLine("\n'Marketing' ভ্যালু-এর ইনডেক্স = " + list.IndexOfValue("Marketing"));
        Console.WriteLine("'Purchase' ভ্যালু-এর ইনডেক্স = " + list.IndexOfValue("Purchase"));
        Console.WriteLine("'Sales' ভ্যালু-এর ইনডেক্স = " + list.IndexOfValue("Sales"));
        Console.WriteLine("'IT' ভ্যালু-এর ইনডেক্স = " + list.IndexOfValue("IT"));
        Console.WriteLine("'Operations' ভ্যালু-এর ইনডেক্স = " + list.IndexOfValue("Operations"));
    }
}

আউটপুট

SortedList উপাদান...
Five Operations
Four Purchase
One Finance
Six IT
Three Sales
Two Marketing
'Marketing' ভ্যালু-এর ইনডেক্স = 5
'Purchase' ভ্যালু-এর ইনডেক্স = 1
'Sales' ভ্যালু-এর ইনডেক্স = 4
'IT' ভ্যালু-এর ইনডেক্স = 3
'Operations' ভ্যালু-এর ইনডেক্স = 0

ব্যাখ্যা: IndexOfValue(value) মেথড লিনিয়ার সার্চ করে O(n) সময় নেয় কারণ ভ্যালু সর্টেড নয়। এটি শুধুমাত্র প্রথম ম্যাচের ইনডেক্স রিটার্ন করে। যদি ভ্যালু না পাওয়া যায় তবে -1 রিটার্ন করে। কী-বেসড সার্চ (IndexOfKey) এর চেয়ে ধীর। পারফরম্যান্স Криটিক্যাল সিনেরিওতে ভ্যালু-বেসড লুকআপ এড়িয়ে কী-বেসড অ্যাক্সেস ব্যবহার করা উচিত।

  1. C#-এ SortedSet অবজেক্ট প্রপার সুপারসেট কিনা তা যাচাই করুন

  2. C#-এ SortedSet অবজেক্ট প্রপার সাবসেট কিনা তা যাচাই করুন

  3. C#-এ SortedList ক্লাস (SortedList Class)

  4. পাইথন প্যান্ডাস - ইন্ডেক্স অবজেক্টে NaN মান নির্দিষ্ট ভ্যালু দিয়ে ফিল করা