C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Dictionaryで設定されていないデータ

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■86029 / inTopicNo.1)  Dictionaryで設定されていないデータ
  
□投稿者/ コレラ (1回)-(2017/12/13(Wed) 15:51:58)

分類:[.NET 全般] 




Private Labels As New Dictionary(Of String, String)()



Labels.Add("aaa", "xxx")
Labels.Add("bbb", "yyy")


のようにして
Dictionaryを設定して、
ここに設定されていない、cccというような値が来た場合、
エラーとなってしまいますが、
設定されていないデータが来た場合には
返す値を設定することはできないでしょうか?










引用返信 編集キー/
■86030 / inTopicNo.2)  Re[1]: Dictionaryで設定されていないデータ
□投稿者/ Hongliang (579回)-(2017/12/13(Wed) 15:56:59)
ContainsKeyメソッドやTryGetValueメソッドでキーが存在しているかどうか調べることはできるので、
キーが存在していない場合は特定の値を返すみたいなメソッドを自前で定義すればいいんじゃないでしょうか。
引用返信 編集キー/
■86031 / inTopicNo.3)  Re[1]: Dictionaryで設定されていないデータ
□投稿者/ WebSurfer (1398回)-(2017/12/13(Wed) 16:02:15)
No86029 (コレラ さん) に返信

MSDN を読んでみましょう。

Dictionary<TKey,&#8194;TValue> クラス
https://msdn.microsoft.com/ja-jp/library/xfhwa508(v=vs.110).aspx

そのサンプルコードが参考になりませんか?
引用返信 編集キー/
■86032 / inTopicNo.4)  Re[2]: Dictionaryで設定されていないデータ
□投稿者/ コレラ (2回)-(2017/12/13(Wed) 16:07:02)
ありがとうございます。
ContainsKey(で事前に調べるか
Try catchを使うしかなさそうですね。
これらの方法だと速度が遅くなりそうなので、
Functionを定義して
If文で出力してやる方が効率的でしょうか・・・?
 
引用返信 編集キー/
■86033 / inTopicNo.5)  Re[3]: Dictionaryで設定されていないデータ
□投稿者/ WebSurfer (1399回)-(2017/12/13(Wed) 16:20:01)
No86032 (コレラ さん) に返信
> ありがとうございます。
> ContainsKey(で事前に調べるか
> Try catchを使うしかなさそうですね。
> これらの方法だと速度が遅くなりそうなので、
> Functionを定義して
> If文で出力してやる方が効率的でしょうか・・・?

Try - Catch は使うべきではないと思います。、

MSDN ライブラリには、

"この例では、プログラムがディクショナリにないキー値を頻繁に試行する必要がある場合に、
より効率的に値を取得する方法として TryGetValue メソッドを使用する方法、および
ContainsKey メソッドを使用して、Add メソッドを呼び出す前に、キーが存在するかどうか
をテストする方法を示します。"

と書いてありますが読みましたか?

質問者さんがどのような Function を定義するのか分かりませんが、ライブラリに標準で用意
されているメソッドより速いという自信はどこからきているのでしょう?

引用返信 編集キー/
■86034 / inTopicNo.6)  Re[3]: Dictionaryで設定されていないデータ
□投稿者/ PANG2 (206回)-(2017/12/13(Wed) 16:22:05)
keyが存在しない場合はデフォルト値を返すDictionaryの拡張
https://qiita.com/divideby_zero/items/cd6f0c901a434bc891be
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ