C#-এ প্রতিটি অবজেক্টের একটি হ্যাশ কোড থাকে যা GetHashCode() মেথড দিয়ে প্রাপ্ত করা যায়। স্ট্রিং-এর ক্ষেত্রে, একই বিষয়বস্তুवाले দুটি স্ট্রিং একই হ্যাশ কোড রিটার্ন করে (যদি স্ট্রিং ইন্টার্নিং হয়)। তবে হ্যাশ কোড ইউনিক নয়; বিভিন্ন অবজেক্টের একই হ্যাশ কোড হতে পারে (কলিশন)।
উদাহরণ ১: ভিন্ন স্ট্রিং-এর হ্যাশ কোড
using System;
public class Demo {
public static void Main(String[] args) {
string str1 = "Akon";
string str2 = "Eminem";
Console.WriteLine("স্ট্রিং ১ = " + str1);
Console.WriteLine("স্ট্রিং ১-এর হ্যাশ কোড = " + str1.GetHashCode());
Console.WriteLine("স্ট্রিং ২ = " + str2);
Console.WriteLine("স্ট্রিং ২-এর হ্যাশ কোড = " + str2.GetHashCode());
Console.WriteLine("স্ট্রিং ১ স্ট্রিং ২-এর সমান: {0}", str1.Equals(str2));
}
}
আউটপুট
স্ট্রিং ১ = Akon
স্ট্রিং ১-এর হ্যাশ কোড = 416613838
স্ট্রিং ২ = Eminem
স্ট্রিং ২-এর হ্যাশ কোড = 40371907
স্ট্রিং ১ স্ট্রিং ২-এর সমান: False
উদাহরণ ২: একই স্ট্রিং-এর হ্যাশ কোড
using System;
public class Demo {
public static void Main(String[] args) {
string str1 = "Imagine Dragons";
string str2 = "Imagine Dragons";
Console.WriteLine("স্ট্রিং ১ = " + str1);
Console.WriteLine("স্ট্রিং ১-এর হ্যাশ কোড = " + str1.GetHashCode());
Console.WriteLine("স্ট্রিং ২ = " + str2);
Console.WriteLine("স্ট্রিং ২-এর হ্যাশ কোড = " + str2.GetHashCode());
Console.WriteLine("স্ট্রিং ১ স্ট্রিং ২-এর সমান: {0}", str1.Equals(str2));
}
}
আউটপুট
স্ট্রিং ১ = Imagine Dragons
স্ট্রিং ১-এর হ্যাশ কোড = -1546868095
স্ট্রিং ২ = Imagine Dragons
স্ট্রিং ২-এর হ্যাশ কোড = -1546868095
স্ট্রিং ১ স্ট্রিং ২-এর সমান: True
গুরুত্বপূর্ণ নোট: হ্যাশ কোড শুধু হ্যাশ-ভিত্তিক কালেকশন (যেমন Dictionary, HashSet) এর জন্য ব্যবহার করা হয়। দুটি সমান অবজেক্টের হ্যাশ কোড একই হতে হয়, কিন্তু একই হ্যাশ কোড বলতে অবজেক্টগুলো সমান হবে না।