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は要素の順序を保持しないため、列挙時の並び順は不定
-
ES6 JavaScriptでDOMから要素を簡単に削除する方法
ES6(ECMAScript 2015)のJavaScriptを使えば、DOMから要素を削除するのはとても簡単です。特別なライブラリや複雑な処理は不要で、削除したい要素に対して remove() メソッドを呼び出すだけです。 remove() メソッドの基本的な使い方 まず querySelector() で対象の要素を取得し、その要素に remove() を実行します。 let element = document.querySelector(element-to-remove) element.remove() この2行のコードだけで、指定した要素がDOMから完全に取り除かれます。 具体例
-
CSSでcontenteditable要素の境界線(枠線)を削除する方法
HTMLのcontenteditable属性を指定した要素は、ブラウザ上で直接テキストを編集できます。しかし、要素をクリックして編集モードにすると、多くのブラウザではデフォルトで青い枠線(アウトライン)が自動的に表示されます。この境界線を非表示にしたい場合は、CSSのoutlineプロパティを使用します。[contenteditable]セレクターに対してoutline: 0px solid transparent;を指定することで、編集時の枠線をきれいに取り除くことができます。コード例<!DOCTYPE html> <html> <head> <st