キーワード:Dictionary,SortedList,List
Dictionaryの使い方を見ていきましょう。
Dictionary<TKey,TValue>
TkeyとTValueの部分には任意の型を入れます。
Tkeyはキーとなる値
TValueにはキーに紐づけて保持する値を入れます。
例えばキーを数値,値が文字なら
Dictionary<int, string> dic = new Dictionary<int, string>();
こんな感じになります。
TValueにはstringではなく,カスタムクラスを入れることで
多くの値を設定できます。
要するに識別できるキーと値をペアで設定しましょうという事。
値の設定はキーとValueを同時に入れます。
dic.Add(32, "text32"); dic.Add(10, "text10"); dic.Add(20, "text20");
キーは重複できないので
dic.Add(32, "text32"); dic.Add(32, "text10"); dic.Add(20, "text20");
こんな感じになっていると32を2回目に入れた時点でエラーになります。
値を取得する場合はキーを指定して取得することができます。
var val = dic[20]; // value指定 text20が取得される
こんな感じになります。
似たようなリスト系のクラスにSortedListというのがあります。
書き方は同じです。
SortedList<int, string> slist = new SortedList<int, string>();
Dictionaryとの違いはSortedListの場合,Addした後に必ずキーでソートをするという事。
slist.Add(20, "text20"); slist.Add(32, "text32"); slist.Add(10, "text999");
こんな感じで入れても,最後にいれた10が先頭になります。
要するに,SortedListは毎回ソートされるため
キーの順番をランダムに入れる場合はAddするときの
パフォーマンスが悪いという事になります。
じゃあ使えないかというとそうではなく,
ソートされているため,値を取り出すときパフォーマンスはいいのです。
使いどころとしては,大量データで
その中から1件を探すような場合は高速で検索できます。
その場合はAddのパフォーマンスの兼ね合いがあるので
大量データのテストをして,どちらを使うかは検討してみてください。
ただ,私自身はDictionaryやSortedListはめったに使いません。
パフォーマンスが出ないときにSortedListを使うこともありますが,
基本的にはList<T>を使います。Listに関しては他の記事で書いているので
解説は省きますが,Listに対してFindで検索ができるため,
カスタムクラスのListで基本は対応しています。
- C#初心者のための基礎!C#文法2割の知識で8割の仕事をする方法!#1
- C#初心者のための基礎!ブロックと名前空間とクラスとメソッドを解説#2
- C#初心者のための基礎!#3値の扱い方。変数と定数をわかりやすく解説!
- C#初心者のための基礎!データ型の種類と使い分けをわかりやすく解説#4
- C#初心者のための基礎!値型と参照型の違いと使い方をわかりやすく解説#5
- C#初心者のための基礎!データ型の変換のやり方をわかりやすく解説#6
- C#初心者のための基礎!配列の使い方をわかりやすく解説#7
- C#初心者のための基礎!動的配列List<T>の使い方をわかりやすく解説#8
- C#初心者のための基礎!演算子の使い方をわかりやすく解説#9
- C#初心者のための基礎!if文とswich文の使い方をわかりやすく解説#10
- C#初心者のための基礎!while文の書き方と使い方をわかりやすく解説#11
- C#初心者のための基礎!do-While文の書き方と使い方をわかりやすく解説#12
- C#初心者のための基礎!for文の書き方と使い方をわかりやすく解説#13
- C#初心者のための基礎!foreach文の書き方と使い方をわかりやすく解説#14
- C#初心者のための基礎!オブジェクト指向の意味をわかりやすく解説#15
- C#初心者のための基礎!クラスの意味と使い方をわかりやすく解説#16
- C#初心者のための基礎!コンストラクタの意味と使い方をわかりやすく解説#17
- C#初心者のための基礎!アクセス修飾子の意味と使い方をわかりやすく解説#18
- C#初心者のための基礎!メソッドの意味と使い方をわかりやすく解説#19
- C#初心者のための基礎!フィールドの意味と使い方をわかりやすく解説#20
- C#初心者のための基礎!インスタンスの意味と使い方をわかりやすく解説#21
- C#初心者のための基礎!カプセル化の意味と使い方をわかりやすく解説#22
- C#初心者のための基礎!プロパティの意味と使い方をわかりやすく解説#23
- C#初心者のための基礎!Disposeとusingの意味と使い方を解説#24
- C#初心者のための基礎!staticスタティックの意味と使い方を解説#25
- C#初心者のための基礎!継承の意味と使い方をわかりやすく解説#26
- C#初心者のための基礎!override(オーバーライド)の使い方を解説#27
- C#初心者のための基礎!ポリモーフィズムとインタフェースの使い方を解説#28
- C#初心者のための基礎!ポリモーフィズムと抽象クラスの使い方を解説#29
- C#初心者のための基礎!例外Exceptionの意味と使い方をわかりやすく解説#30