#author("2019-12-16T22:02:33+09:00","","")
#navi(../)
* 連想配列(ハッシュ)を使ってみる・Dictionary [#i5e99410]
.NETで連想配列(ハッシュテーブル)を使いたい場合は、Dictionaryクラスを使うと簡単に連想配列を実現できます。~
以下にC#,Visual Basic(VB)のサンプルコードを紹介します。

#htmlinsert(windev-top.html)
#contents

* 参考サイト [#uabe36ee]
-[[Microsoft|.NET Dictionary クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.8]]
-[[Microsoft|.NET KeyValuePair<TKey,TValue> 構造体>https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.keyvaluepair-2?view=netframework-4.8]]

* テスト環境 [#ga4e5cc3]
- Windows 10 ver.1909
- Visual Studio 2019
- .NET Core


* サンプルコードの説明 [#i8af0dd8]
サンプルコードでは、以下の処理を行っています。
-Dictionaryクラスを使って、キーがstring、値もstringのキーバリューを作成してます。~
キーがstring, 値が数値の場合は string, int などとすれば実現できます。
-ハッシュテーブル(連想配列)に2つのペアをAddメソッドで追加しています。
-foreachを使って、キー+値を表示しています。
-ContainsKeyメソッドを使って値が存在するかをチェックしています。

*サンプルコード [#x094f579]
以下に C# と Visual Basic(VB) のサンプルコードを紹介します。

** C# [#n8725981]
 using System;
 using System.Collections.Generic;
 
 class Program
 {
     static void Main(string[] args)
     {
         Dictionary<string, string> ht = new Dictionary<string, string>();
 
         ht.Add("key1", "value1");
         ht.Add("key2", "value2");
         // Dictionary内のキー、値をループで表示する
         foreach (KeyValuePair<string,string> pair in ht)
         {
             Console.WriteLine("key : {0}, value : {1}", pair.Key, pair.Value);
         }
         // ハッシュキーで値を取得する
         Console.WriteLine("key1={0}", ht["key1"]);
         Console.WriteLine("key2={0}", ht["key2"]);
         // ハッシュキーが含まれているかを確認する
         Console.WriteLine("ContainsKey(\"key1\") : " + ht.ContainsKey("key1"));
         Console.WriteLine("ContainsKey(\"key3\") : " + ht.ContainsKey("key3"));
     }
 }

** Visual Basic (VB) [#e4b88292]
 Imports System
 
 Module Program
     Sub Main(args As String())
         Dim ht As Dictionary(Of String, String) = New Dictionary(Of String, String)
         ht.Add("key1", "value1")
         ht.Add("key2", "value2")
         'Dictionary内のキー、値をループで表示する
         For Each pair As KeyValuePair(Of String, String) In ht
             Console.WriteLine("key : {0}, value : {1}", pair.Key, pair.Value)
         Next
         'ハッシュキーで値を取得する
         Console.WriteLine("key1={0}", ht("key1"))
         Console.WriteLine("key2={0}", ht("key2"))
         'ハッシュキーが含まれているかを確認する
         Console.WriteLine("ContainsKey(""key1"") : " & ht.ContainsKey("key1"))
         Console.WriteLine("ContainsKey(""key3"") : " & ht.ContainsKey("key3"))
     End Sub
 End Module

** 実行結果 [#ef15d59a]
上記のサンプルコードを実行した時のキャプチャになります。
#ref(01.png)

以上、.NETで連想配列(ハッシュテーブル)のサンプルコードでした。

#htmlinsert(windev-btm.html)



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS