.NET開発者のためのブログメディア
C#でDictionary(map)を使うには?コードも併せてご紹介!
- SE
- C#でのDictionary(map)の使い方について教えてください。
- PM
- C#でのDictionary(map)の初期化や要素の追加、取得方法についてソースコードを見ながら解説いたしましょう。
目次
C#でのDictionary(map)の扱い方とは?
今回は、C#でのDictionary(map)の扱い方について説明します。Dictionaryはkeyとvalueをセットで扱います。Dictionaryの初期化、追加、取得、削除、検索、ソート方法について、ソースコードを交えて紹介します。
C#のDictionaryに興味のある方はぜひご覧ください。
初期化、追加、要素取得
C#での、Dictionaryの初期化、要素追加、要素取得方法を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
using System.Collections.Generic;
public class Hello{
public static void Main(){
// 初期化
var mymap = new Dictionary<string, string>(){
{“key1”, “value1”},
{“key2”, “value2”},
{“key3”, “value3”},
};
// 要素の追加
mymap.Add(“key4”, “value4”);
mymap.Add(“key5”, “value5”);
mymap.Add(“key6”, “value6”);
// keyとvalueの取得
foreach(KeyValuePair<string, string> item in mymap) {
System.Console.WriteLine(“key:{0}, value:{1}”, item.Key, item.Value);
}
// keyの取得
foreach (var a in mymap.Keys) {
System.Console.WriteLine(“key:{0}”, a);
}
// valueの取得
foreach (var a in mymap.Values) {
System.Console.WriteLine(“value:{0}”, a);
}
}
}
|
実行結果は以下のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
key:key1, value:value1
key:key2, value:value2
key:key3, value:value3
key:key4, value:value4
key:key5, value:value5
key:key6, value:value6
key:key1
key:key2
key:key3
key:key4
key:key5
key:key6
value:value1
value:value2
value:value3
value:value4
value:value5
value:value6
|
keyとvalueのセット、keyのみ、valueのみの取得ができます。用途に応じて使い分けてください。
削除
C#での、Dictionaryから要素を削除する方法を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using System.Collections.Generic;
using System.Linq;
public class Hello{
public static void Main(){
// 初期化
var mymap = new Dictionary<string, string>(){
{“key1”, “value1”},
{“key2”, “value2”},
{“key3”, “value3”},
{“key4”, “value4”},
{“key5”, “value5”},
{“key6”, “value6”},
};
// 要素の削除(key指定)
mymap.Remove(“key3”);
// 要素の削除(value指定)
var removeList = mymap.Where(kv => kv.Value == “value4”).ToList();
foreach (var item in removeList){
mymap.Remove(item.Key);
}
// keyとvalueの取得
foreach(KeyValuePair<string, string> item in mymap) {
System.Console.WriteLine(“key:{0}, value:{1}”, item.Key, item.Value);
}
// 要素の全削除
mymap.Clear();
System.Console.WriteLine(mymap.Count()); // 0
}
}
|
実行結果は以下のようになります。
1
2
3
4
5
|
key:key1, value:value1
key:key2, value:value2
key:key5, value:value5
key:key6, value:value6
0
|
このようにC#では、RemoveメソッドでDictionaryから要素を削除できます。
検索
C#での、Dictionaryから要素を検索する方法を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using System.Collections.Generic;
public class Hello{
public static void Main(){
// 初期化
var mymap = new Dictionary<string, string>(){
{“key1”, “value1”},
{“key2”, “value2”},
{“key3”, “value3”},
{“key4”, “value4”},
{“key5”, “value5”},
{“key6”, “value6”},
};
// key指定の検索
System.Console.WriteLine(mymap.ContainsKey(“key2”)); // True
System.Console.WriteLine(mymap.ContainsKey(“key7”)); // False
// value指定の検索
System.Console.WriteLine(mymap.ContainsValue(“value2”)); // True
System.Console.WriteLine(mymap.ContainsValue(“value7”)); // False
}
}
|
実行結果は以下のようになります。
1
2
3
4
|
True
False
True
False
|
このようにC#では、ContainsKey/ContainsValueメソッドでDictionaryから要素を検索できます。
ソート
C#での、Dictionaryから要素をソートする方法を紹介します。LINQを利用します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using System.Collections.Generic;
using System.Linq;
public class Hello{
public static void Main(){
// 初期化
var mymap = new Dictionary<string, string>(){
{“key3”, “value3”},
{“key4”, “value4”},
{“key6”, “value6”},
{“key1”, “value1”},
{“key5”, “value5”},
{“key2”, “value2”},
};
// Valueでソート。x.Keyとすればキーでソートされる
var sortedmap = mymap.OrderBy(x => x.Value);
// keyとvalueの取得
foreach(KeyValuePair<string, string> item in sortedmap) {
System.Console.WriteLine(“key:{0}, value:{1}”, item.Key, item.Value);
}
}
}
|
実行結果は以下のようになります。
1
2
3
4
5
6
|
key:key1, value:value1
key:key2, value:value2
key:key3, value:value3
key:key4, value:value4
key:key5, value:value5
key:key6, value:value6
|
このようにC#では、OrderByメソッドでDictionaryをソートできます。
- SE
- Dictionaryはkeyとvalueをセットで扱うのですね。
- PM
- その通りです。ご紹介したDictionaryの初期化、追加、取得、削除、検索、ソート方法についてしっかり理解して活用してください。
まとめ
いかがでしたでしょうか。Dictionaryの初期化、追加、取得、削除、検索、ソート方法について、ソースコードを交えて紹介しました。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
-
.NET Framework 3.5をWindows10にインストールする方法
2019年10月24日 -
EdgeとChromeはどう違う?それぞれのスペック7つを比較解説!
2020年09月28日 -
【VB.NET入門】DataGridViewの使い方まとめ
2019年12月22日 -
VB.NETをおすすめする3つの理由とは?VBAとの違いや勉強方法を解説
2019年12月21日 -
Windows10のテキストエディタおすすめ20選!選ぶポイント3つ
2020年04月28日
reccomended おすすめ記事
-
C#のusingステートメントでリソースの解放【Disposeとの違いとは】
2020年03月17日 -
【SQL Serverログの操作】トランザクションログの使用量を確認する方法
2020年03月16日 -
【.NETが統合】.NET 5の概要と今後のリリース予定
2020年03月05日
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
ソフトを用いた3DCGアート/東京都千代田区/【WEB面談可】/テレワーク
月給50万~50万円東京都千代田区(秋葉原駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅)