2017-06-03 10 views

答えて

2
int hitCount; 
var key = new Tuple<string, string>(tr, "H"); 
dict.TryGetValue(key, out hitCount); 

C#7以降で:

var key = new Tuple<string, string>(tr, "H"); 
dict.TryGetValue(key, out int hitCount); 

差がhitCountの宣言は、それがoutパラメータとして使われている場所に移動されることです。

キーを別々の変数に定義する必要はありませんが、これらのシナリオではキーが存在しない場合は追加することになります。

2

使用Dictionary<K,V>.TryGetValue

int hitCount; 
dict.TryGetValue(new Tuple<string, string>(tr, "H"), out hitCount); 

値が見つからない場合は、hitCount0あるintのデフォルト値に割り当てられます。

2

使用Tuple.Createは、メソッドの引数の型とジェネリック型パラメータを推測コンパイラを聞かせする:

int hitCount; 
if (!dict.TryGetValue(Tuple.Create(tr, "H"), out hitCount)) { 
    hitCount = 0; 
} 

注:をゼロにhitCountを設定する必要はありません。このコードは、デフォルトとは異なる番号を使用する場合に備えて、欠落しているキーを処理する方法を示しています。

+0

あなたは本当にそれを必要としません。もし0の割り当てがあれば、それはまさにTryGetValueでしょう。 – Adrian

+0

@adjan私はOPの別のデフォルト値を使用したい場合のためにステートメント構造を維持しました。 – dasblinkenlight

関連する問題