परिचय
C# में Queue.Equals() मेथड जांचता है कि क्या एक क्यू ऑब्जेक्ट दूसरे क्यू ऑब्जेक्ट के बराबर है। यह Object.Equals() को ओवरराइड करता है और रेफरेंस समानता (reference equality) की जांच करता है - यानी, क्या दोनों रेफरेंस समान इंस्टेंस को इंगित करते हैं।
सिंटैक्स
public virtual bool Equals(object obj);
obj तुलना के लिए ऑब्जेक्ट है।
उदाहरण 1: स्वयं से तुलना
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue queue = new Queue();
queue.Enqueue("Gary");
queue.Enqueue("Jack");
queue.Enqueue("Ryan");
queue.Enqueue("Kevin");
queue.Enqueue("Mark");
queue.Enqueue("Jack");
queue.Enqueue("Ryan");
queue.Enqueue("Kevin");
Console.WriteLine(queue.Equals(queue)); // True - समान रेफरेंस
Console.Write("तत्वों की संख्या = ");
Console.WriteLine(queue.Count);
queue.Clear();
Console.Write("तत्वों की संख्या (अपडेटेड) = ");
Console.WriteLine(queue.Count);
}
}
आउटपुट
True तत्वों की संख्या = 8 तत्वों की संख्या (अपडेटेड) = 0
उदाहरण 2: दो अलग क्यूज की तुलना
using System;
using System.Collections;
public class Demo {
public static void Main() {
Queue queue = new Queue();
queue.Enqueue(100);
queue.Enqueue(200);
queue.Enqueue(300);
queue.Enqueue(400);
Queue queue2 = new Queue();
queue2.Enqueue(100);
queue2.Enqueue(150);
queue2.Enqueue(300);
queue2.Enqueue(400);
Console.WriteLine(queue.Equals(queue2)); // False - अलग इंस्टेंस
}
}
आउटपुट
False
महत्वपूर्ण नोट्स
Queue.Equals()सामग्री समानता (content equality) नहीं जांचता - केवल रेफरेंस समानता।- समान तत्वों वाले दो अलग क्यूज
falseवापस करेंगे। - सामग्री तुलना के लिए मैन्युअल पुनरावृति या LINQ
SequenceEqual()का उपयोग करें। - यही व्यवहार अधिकांश संग्रह क्लासेस के लिए लागू होता है जब तक कि ओवरराइड न किया गया हो।
Object.ReferenceEquals()समान कार्य करता है।