C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のQueue.Equals()メソッドの使い方を徹底解説

C#におけるQueue.Equals()メソッドは、あるキュー(Queue)オブジェクトが別のキューオブジェクトと等しいかどうかを判定するために使用されます。このメソッドは、オブジェクト同士の比較を行い、結果を真偽値(bool)として返します。

構文

Queue.Equals()メソッドの構文は以下のとおりです。

public virtual bool Equals (object obj);

パラメータobjには、比較対象となるオブジェクトを指定します。現在のインスタンスとobjが同一の参照を持つ場合はtrueを返し、そうでない場合はfalseを返します。

使用例1:同じキュー同士の比較

まず、キュー自身と比較した場合の動作を見てみましょう。

using System;
using System.Collections.Generic;
public class Demo {
    public static void Main(){
        Queue<string> queue = new Queue<string>();
        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));
        Console.Write("要素数 = ");
        Console.WriteLine(queue.Count);
        queue.Clear();
        Console.Write("要素数(更新後) = ");
        Console.WriteLine(queue.Count);
    }
}

出力結果

上記のコードを実行すると、以下の出力が得られます。

True
要素数 = 8
要素数(更新後) = 0

この例では、キューに対して自分自身を比較しているため、Equals()メソッドはtrueを返します。また、Clear()メソッドを呼び出すことで、すべての要素が削除され、要素数が0になっていることが確認できます。

使用例2:異なるキュー同士の比較

次に、内容の異なる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

注意点

Equals()メソッドは既定では参照の等価性を比較するため、たとえ2つのキューに同じ要素が同じ順序で格納されていても、別々のインスタンスであればfalseが返されます。上記の例でも、2番目のキューの要素「200」が「150」に置き換わっている点に加えて、両者が異なるオブジェクトであるためfalseという結果になっています。

要素ごとの内容を比較したい場合は、ループ処理やLINQのSequenceEqual()メソッドなどを活用することをおすすめします。

  1. C#のDateTime.Equals()メソッドとは?使い方とサンプルコードを解説

    DateTime.Equals()メソッドとはC#のDateTime.Equals()メソッドは、2つのDateTimeオブジェクト(インスタンス)が等しいかどうかを判定するための静的メソッドです。比較の結果、両者が同一の日時であればtrueを返し、異なる場合はfalseを返します。このメソッドは、日時データの一致確認や条件分岐の処理などで頻繁に利用される基本的なメソッドの一つです。構文DateTime.Equals()メソッドの構文は以下の通りです。public static bool Equals (DateTime date1, DateTime date2);パラメータdate1:比較

  2. C#のQueue(キュー)クラスとは?FIFOの基本とEnqueue・Dequeueの使い方

    C#のキュー(Queue)とは キュー(Queue)は、オブジェクトを「先入れ先出し(FIFO:First-In, First-Out)」で管理するコレクションです。最初に追加した要素が最初に取り出されるという特性を持つため、タスクの順番待ちや処理の履歴管理など、追加された順序どおりに要素へアクセスしたい場面で活用されます。 要素をキューに追加することを「エンキュー(Enqueue)」、キューから要素を取り出すことを「デキュー(Dequeue)」と呼びます。 要素の追加:Enqueueメソッド キューに要素を追加するには、Enqueueメソッドを使用します。 Queue q = new Qu