C#のDictionaryでContainsValueメソッドを使って値を検索する方法
C#では、Dictionary内に特定の値が存在するかどうかを確認するためにContainsValue()メソッドを使用します。このメソッドは、指定した値がDictionaryに含まれている場合は true を、含まれていない場合は false を返します。
Dictionaryの作成と要素の追加
まず、Dictionaryを作成し、要素を追加しましょう。
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("keyboard", "One");
d.Add("mouse", "Two");ContainsValue()メソッドで値を検索する
続いて、ContainsValue()メソッドを使って、特定の値が存在するかどうかをチェックします。
d.ContainsValue("Two");以下が完全なサンプルコードです。
サンプルコード
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main() {
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("keyboard", "One");
d.Add("mouse", "Two");
// 値を検索する
Console.WriteLine(d.ContainsValue("Two"));
}
}実行結果
True
補足:ContainsValueとContainsKeyの違い
なお、キーの存在を確認したい場合は ContainsKey() メソッドを使用します。ContainsKey() はハッシュテーブルを利用しているため高速(O(1))ですが、ContainsValue() はすべての値を順番に走査するため、要素数に比例した時間(O(n))がかかる点に注意してください。大きなDictionaryで頻繁に値の検索を行う場合は、パフォーマンスへの影響を考慮するとよいでしょう。
-
【C#】String.Join()メソッドで文字列配列を連結する方法
String.Join()メソッドとはC#のString.Join()メソッドは、文字列配列のすべての要素を1つの文字列に連結するためのメソッドです。各要素の間には、引数で指定した区切り文字(セパレーター)が自動的に挿入されます。たとえば、区切り文字として改行コード「\n」を指定すれば、配列の各要素がそれぞれ別の行に配置された、複数行の文字列を簡単に作成できます。基本的な構文String.Join(\n, starray);第1引数: 要素間に挿入する区切り文字第2引数: 連結対象の文字列配列戻り値: 連結された1つの文字列サンプルコード以下は、5つの文字列要素を持つ配列を改行コードで連結し、
-
C#で文字列を反転する方法(Array.Reverseの使い方)
C#で文字列を反転する方法 C#で文字列を逆順に並べ替えたい場合は、Array.Reverse()メソッドを使うのが最も簡単です。文字列はそのままでは直接反転できないため、一度文字配列(char配列)に変換してから反転処理を行います。 文字列を反転するサンプルコード 以下は、文字列を反転して返すカスタムメソッドの例です。ここでは、引数として渡された文字列「Henry」を反転させています。 public static string ReverseFunc(string str) { char[] ch = str.ToCharArray(); Array.Reverse(ch)