2016-12-28 7 views
1

辞書値のペアを持つ文字列を見つけようとしています。重要なのは、文字列を見つけて整数を取得することです。その逆もありません。 1000年の文字列リスト「文字列」と整数:辞書リストの文字列を見つけてその対の整数値を取得する方法

Dictionary<string, int> Dict = new Dictionary<string, int>(); 

、今私はDictの中に存在している特定の文字列、いくつかの入力を、探したい:

string findStr = "hello world"; 

私が得たこの道で始まるすべての文字列 " 「...こんにちは:

var result = Dict.Where(pair => pair.Key.StartsWith(findStr) && pair.Value > 0); 

、この方法だけでは何も:

var result = Dict.Where(pair => pair.Key.Equals(findStr) && pair.Value > 0); 

希望の結果を得るためにさらに進む方法がわかりません:

私の辞書に等しい文字列を見つけ、ペアの整数値を取得するには。

+0

あなたは 'ペアを試しましたここ.equalsとの違いを==参照TryGetValueで値を読み取るしようとすることができます。 Key == findStr' –

+2

辞書のTryGetValue: 'Dict.TryGetValue(findStr、out intValue)'を使用すると、boolを返します。 –

+0

また、文字列の先頭と末尾に大文字小文字を入れて空白を削除することもできます。 –

答えて

0

あなたはこのdict[key]のようにdictionaryを読んで、O(1)にアクセスする必要があります。あなたはどちらかkeyが最初にどちらかContainsKey(key)の方法を使用して存在しているかどうかを確認または

+0

TryGetValueこんにちは、私は答えとしてマークするつもりです、TryGetValueはうまく動作します –

0
var result = Dict.Where(pair => pair.Key==findStr && pair.Value > 0); 

C# difference between == and Equals()

+0

こんにちは、この方法も確かに動作するはずですが、私の場合は結果が0です私はそれに続く条件でそれを使用しますが、イベントではうまくいきます。だから私はAD.NetをマークしようとしているTryGetValueは私の場合にはもっと役に立ちますが、この答えはまた別のケースでは便利で便利です –

+0

'.Where'を使うと、辞書よりはるかに遅い 'List >'を持っているかのようにパフォーマンスが向上しました。 –

関連する問題