問題タブ [trygetvalue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - このディクショナリの TryGetValue コードを読みやすくするにはどうすればよいですか?
IDがまだ知られていないかどうか、または既知の場合は関連付けられた値が変更されているかどうかをテストしたいと思います。私は現在これに似たコードを使用していますが、パターンに慣れていない人には理解しにくいです。LOC を短く保ちながら、読みやすくする方法を考えられますか?
linq - LINQ で TryGetValue() を使用していますか?
このコードは機能しますが、ignored
辞書を二重に参照するため非効率的です。LINQ ステートメントで辞書TryGetValue()
メソッドを使用して効率を高めるにはどうすればよいですか?
問題は、out パラメーターに使用する LINQ ステートメント内で変数を宣言する方法がわからないことです。
c# - 辞書の呼び方.TryGetValue() ここで、K : 述語, V : 列挙型
私は持っていますDictionary<Predicate<double>, SomeEnum>
:
私はこのようにそれに対して呼び出したいTryGetValue(K, out V)
:
そして受け取る
しかし、の最初のパラメータTryGetValue()
はPredicate<T>
、だけではありませんT
。どうすればやりたいことができますか?
汚い回避策しか見つかりませんでした:
他の方法はありますか?
または、私のアイデアを適切に実装する方法は?- キーを定数としてではなく、セグメントのように宣言します。
dictionary - C ++ディクショナリのデフォルトの整数値を変更するTryGetValue()メソッド?
私が恐れている簡単な質問には短くて残念な答えがありますが、残念ながら私はとにかく尋ねます.. C ++ディクショナリメソッドでTryGetValue()は、整数に対して返されるデフォルト値を変更する方法があります(たとえば、代わりに-1に) )キーが存在しない場合は?問題は、0がデフォルトであり、0の値が私のプログラムのコンテキストで意味をなすため、これは適切ではないということです。
そうでない場合、ContainsKey()メソッドはそれほど遅くなりますか?それとも、髪の毛が裂けて、おそらく私には選択の余地がないので、見ることを心配する必要はありません。
どうもありがとう
PS私はハッシュ関数を実行する必要はありません(これはとにかく辞書の実装にあるかもしれませんが!)、また私のコレクションに特定の順序はありません、私はルックアップと追加をできるだけ速くしたいだけです。辞書は適切な選択ですか?
c# - TryGetValue が Dictionary の割り当てを解除するのはなぜですか?
私はこのコードを持っています:
コードがelseブロックに渡された場合、tempDictがnullを指しているため、追加を実行できない例外が発生しました。なぜこうなった ?新しい辞書をelseブロックにも割り当てることで醜い方法でそれをバイパスする方法を知っていますが、これを行うより良い方法はありますか?
c# - 文字列分割後に TryGetValue を使用する C#
さて、私はどこでも検索しましたが、本当にこれにこだわっています. ストリームリーダーを使用してコンマで区切られたテキスト単語を含む CSV ファイルをロードし、それらを辞書に追加するプログラムを作成しようとしています。次に、ユーザーがカンマの前のテキストを最初のテキスト ボックスに入力してボタンをクリックすると、フォーム上でカンマの後のテキストが他のテキスト ボックスに表示されます。
私は嘘をつくつもりはありません。私はまだC#の基本を学ぼうとしているので、説明された答えをいただければ幸いです。
これは私のコードであり、ここからどこに行くべきかわかりません。コンマ分割の後に TryGetValue を使用して、テキストの最初の部分を [0] として割り当て、コンマの後の 2 番目の部分を [1 として割り当てたいと考えています。 ]
私の入力データの例は次のようなものです:
黒、白
猫、犬
黄、青
c# - GetValue()メソッドが失敗した場合にエラーを発生させる
ファイルキャッシュ(各ファイルはサードパーティのAPIへのリクエストの結果を表す)として機能するWCFサービスを継承しました。現時点では、ファイルが存在しない場合、コードはデータを作成するための新しいリクエストを作成し、クライアントコードにも例外を発生させます。
クライアントがファイルを再度要求するために戻ってきて、それまでにクライアントがファイルを利用できるようになるという考えだと思います(ファイルの生成には数秒かかります)。
ここにコードの臭いがあると思うので、この部分を書き直さなければなりません。現時点では、いくつかの方法で例外が発生し、バブルが発生しています。ファイルが存在するかどうかをソースで確認し、その情報をコールスタックに渡す必要があると思います。
WCFインターフェースには現在GetValue()
メソッドがありますが、それを置き換えるために使用できると思う2つのオプションがあります。
null
ファイルが存在しない場合に戻ります。bool TryGetValue(string key, out string value)
メソッドを使用する
誰かが好み/推奨事項を持っていますか?
ありがとう
c# - なぜInvalidCastExceptionが発生するのかわからない
私は取得していますが、InvalidCastException
その理由がわかりません。
例外を発生させるコードは次のとおりです。
AppSettings.cs :(抽出)
GetValueOrDefault<IList<string>>(TriedIDList_KeyName, TriedIDList_Default)
およびAddOrUpdateValue(TriedIDList_KeyName, value)
は、Microsoftが推奨する通常の方法です。あなたはここで完全なコードを見つけることができます。
編集:私はこの行で例外を受け取りました:
c# - C#で空またはnull値を使用してタプルを初期化します
この辞書とタプルをSetValue()で次のように設定しています:-
以下のようにGetValue()でタプルを取得しようとしています:-
私の質問は、これが辞書からタプルを取得しながらタプルを初期化する正しい方法であるかどうかです。より良いコードはありますか?