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

C#のHashtable(ハッシュテーブル)から指定したキーの要素を削除する方法

C#のHashtableクラスでは、Removeメソッドを使うことで、指定したキーを持つ要素を簡単に削除できます。この記事では、実際に動作するサンプルコードと出力結果をもとに、Removeメソッドの基本的な使い方をわかりやすく解説します。

Removeメソッドとは

Removeメソッドは、引数に指定したキーと、それに対応する値のペアをHashtableから削除します。構文は以下のとおりです。

public virtual void Remove(object key);

なお、指定したキーがHashtable内に存在しない場合でも例外はスローされず、Hashtableの内容は変更されないまま処理が続行される点が特徴です。

サンプルコード①:基本的な削除の例

まず、10個の要素を追加したHashtableから、キー「5」の要素を削除する例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Hashtable hash = new Hashtable(10);
      hash.Add("1", "A");
      hash.Add("2", "B");
      hash.Add("3", "C");
      hash.Add("4", "D");
      hash.Add("5", "E");
      hash.Add("6", "F");
      hash.Add("7", "G");
      hash.Add("8", "H");
      hash.Add("9", "I");
      hash.Add("10", "J");

      Console.WriteLine("Hashtable Key and Value pairs...");
      foreach(DictionaryEntry entry in hash) {
         Console.WriteLine("{0} and {1}", entry.Key, entry.Value);
      }

      Console.WriteLine("Is the Hashtable having fixed size? = " + hash.IsFixedSize);
      Console.WriteLine("Count of entries in Hashtable = " + hash.Count);

      // キー「5」の要素を削除
      hash.Remove("5");

      Console.WriteLine("Count of entries in Hashtable (updated) = " + hash.Count);
   }
}

出力結果

Hashtable Key and Value pairs...
10 and J
1 and A
2 and B
3 and C
4 and D
5 and E
6 and F
7 and G
8 and H
9 and I
Is the Hashtable having fixed size? = False
Count of entries in Hashtable = 10
Count of entries in Hashtable (updated) = 9

コードのポイント

  • foreachループでDictionaryEntry構造体を使用すると、Hashtable内のすべてのキーと値のペアを順に取得できます。
  • IsFixedSizeプロパティは、Hashtableのサイズが固定かどうかを示します(通常はFalse)。
  • hash.Remove("5")を実行することでキー「5」の要素が削除され、Countプロパティの値が10から9に減少していることが確認できます。

サンプルコード②:複数の要素を削除する例

続いて、複数のキーを指定して要素を順番に削除する例を紹介します。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Hashtable hash = new Hashtable(10);
      hash.Add("One", "Marketing");
      hash.Add("Two", "Operations");
      hash.Add("Three", "Finance");
      hash.Add("Four", "IT");
      hash.Add("Five", "Sales");
      hash.Add("Six", "Purchase");

      Console.WriteLine("Hashtable Key and Value pairs...");
      foreach(DictionaryEntry entry in hash) {
         Console.WriteLine("{0} and {1}", entry.Key, entry.Value);
      }

      Console.WriteLine("Count of entries in Hashtable = " + hash.Count);

      // 複数の要素を削除
      hash.Remove("Two");
      hash.Remove("Three");
      hash.Remove("Four");

      Console.WriteLine("Count of entries in Hashtable (updated) = " + hash.Count);
   }
}

出力結果

Hashtable Key and Value pairs...
One and Marketing
Five and Sales
Three and Finance
Two and Operations
Four and IT
Six and Purchase
Count of entries in Hashtable = 6
Count of entries in Hashtable (updated) = 3

解説

この例では、「Two」「Three」「Four」という3つのキーを指定してRemoveメソッドを呼び出しています。その結果、要素数は6から3に減少しました。なお、Hashtableは格納順序を保証しないため、列挙時の並び順が追加順と異なる点にも注意してください。

まとめ

Hashtableから特定の要素を削除したい場合は、Removeメソッドを使用します。主な特徴は以下のとおりです。

  • 削除対象のキーが存在しない場合でも例外は発生せず、安全に呼び出せる
  • 削除後はCountプロパティで現在の要素数を確認できる
  • Hashtableは要素の順序を保持しないため、列挙時の並び順は不定
  1. ES6 JavaScriptでDOMから要素を簡単に削除する方法

    ES6(ECMAScript 2015)のJavaScriptを使えば、DOMから要素を削除するのはとても簡単です。特別なライブラリや複雑な処理は不要で、削除したい要素に対して remove() メソッドを呼び出すだけです。 remove() メソッドの基本的な使い方 まず querySelector() で対象の要素を取得し、その要素に remove() を実行します。 let element = document.querySelector(element-to-remove) element.remove() この2行のコードだけで、指定した要素がDOMから完全に取り除かれます。 具体例

  2. CSSでcontenteditable要素の境界線(枠線)を削除する方法

    HTMLのcontenteditable属性を指定した要素は、ブラウザ上で直接テキストを編集できます。しかし、要素をクリックして編集モードにすると、多くのブラウザではデフォルトで青い枠線(アウトライン)が自動的に表示されます。この境界線を非表示にしたい場合は、CSSのoutlineプロパティを使用します。[contenteditable]セレクターに対してoutline: 0px solid transparent;を指定することで、編集時の枠線をきれいに取り除くことができます。コード例<!DOCTYPE html> <html> <head> <st