問題タブ [keynotfoundexception]
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# - KeyNotFoundExceptionがスローされた場合、どのキーが見つからなかったかを確認するにはどうすればよいですか?
ASystem.Collections.Generic.Dictionary
がスローKeyNotFoundException
されていますが、どのキーが欠落しているのかわかりません。これをどのように判断しますか?
vb.net - 辞書値を割り当てずに KeyNotFoundException を単体テストする方法
コード内の特定のディクショナリで単体テストを実行し、データベースにあるとは思わない値 (この場合は key=1) を取得しようとしています。
私は次のコードを書きました:
これは正常に動作しますが、コード分析では、「Dim s as String」宣言について不平を言っています。これは、s が何にも使用されないことを示しているためです。私はこれが例外をスローするつもりであり、 s は無関係であるため、これは意図的なものです。
ただし、コードから s を削除する方法が見つからないようです。割り当てを削除するだけです:
コンパイルに失敗するようになりました。これを行う方法に関する提案はありますか?
dynamics-crm-2011 - CRM 2011 KeyNotFoundException 例外
CRM開発初心者です。カスタム エンティティ「顧客」があります。このエンティティには、TRUE または FALSE の「defaultcustomer」というフィールドがあります。すべての「顧客」に対して「defaultcustomer」を FALSE に設定する必要があるプラグインに取り組んでいます。私は以下のようにしています:
事実:
エンティティ「顧客」自体のプラグインを登録しました。したがって、エンティティ「顧客」が更新されると、プラグインが起動します。
エラー: 次の行にエラーがスローされます。
c# - 塗りつぶされた辞書の KeyNotFoundException
辞書の値を変更しようとしていますが、コンパイラがスローしKeyNotFoundException
ます。確かに、そのキーを辞書で宣言しました。GenerateEmptyChunks()
メソッドを呼び出しているためです。メソッドは、辞書をその位置のキーでチャンクで満たし、レベルジェネレーターの値は空です。デバッガーとChunks
辞書オブジェクトにキーと値が正しく入力されていることを確認しました。CompareTo
私の動作していない方法が原因ですか?はいの場合、CompareTo
正しい値を返すようにメソッドを変更するにはどうすればよいですか?
GenerateEmptyChunks()メソッド:
各タイルのレベル ジェネレーターによって呼び出されるAddBlock()メソッド:
WChunkオブジェクト:
WPointオブジェクト:
キーが辞書にあるときにコンパイラがキーを拒否する理由はありますか?
vb.net - 要求された値のキーがVB.NETASP.NET2.0ディクショナリに存在する場合のKeyNotFoundException
ValueList変数は、Dictionary(Of String、String)として定義されます。
キャプチャされたウォッチ値は、データ(tmpData)の値が「1」であることを示しています。
ValueListは、SSGCol.ValueList Watch変数の展開からわかるように、「1」の置換値が「プロジェクトリソース」になるように定義されています。
ただし、値にアクセスしようとすると、KeyNotFoundExceptionが発生します
私は過去にこの種のことを何千回も行ってきましたが、今日は何らかの理由でそれを機能させることができません。私は本当に明白な何かを見逃しているに違いありません、そして誰かが私の明白な間違いを見るとき、新鮮な見方をして私に平手打ちを与える必要があります。
c# - HtmlEntity.DeEntitize() メソッドを使用した KeyNotFoundException
私は現在、C# 4.0 で書かれたスクレイパーに取り組んでいます。組み込みの WebClient や .NET の RegEx 機能など、さまざまなツールを使用しています。スクレーパーの一部として、HtmlAgilityPack を使用して HTML ドキュメントを解析しています。すべてが思いどおりに動作するようになり、コードのクリーンアップを行いました。
メソッドを使用HtmlEntity.DeEntitize()
して HTML をクリーンアップしています。いくつかのテストを行ったところ、この方法はうまく機能しているように見えました。しかし、コードにメソッドを実装すると、KeyNotFoundException
. これ以上の詳細はありませんので、私はかなり迷っています。私のコードは次のようになります。
ダウンロードされた HTML は UTF-8 でエンコードされています。どうすればKeyNotFound
例外を回避できますか?
c# - キーが存在する場合、C# Dictionary は KeyNotFoundException をスローします。
ベクトル間の距離行列を として表す 2D 配列を格納していDictionary<DistanceCell, double>
ます。私の実装にDistanceCell
は、比較されるベクトルを表す 2 つの文字列フィールドがあります。
このクラスをキーとして使用しているので、 and をオーバーライドEquals()
しましたGetHashCode()
:
ご覧のとおり、 の要件の 1 つはDistanceCell
、Group1
とGroup2
が交換可能であることです。したがって、2 つの文字列x
とはy
とDistanceCell("x", "y")
等しくなければなりませんDistanceCell("y", "x")
。これが、等しい必要がGetHashCode()
あるため、乗算を実装した理由です。DistanceCell("x", "y").GetHashCode()
DistanceCell("y", "x").GetHashCode()
私が抱えている問題は、おおよそ 90% の時間は正しく動作しますが、残りの時間はaKeyNotFoundException
または aをスローすることです。NullReferenceException
前者はディクショナリからキーを取得するときにスローされ、後者はforeach
ループを使用してディクショナリを反復処理し、null のキーを取得して呼び出しEquals()
を試みるときにスローされます。これは私の実装のエラーと関係があると思われますが、GetHashCode()
確信は持てません。また、アルゴリズムの性質上、キーをチェックしたときに辞書にキーが存在しないというケースは決してないはずです。アルゴリズムは、実行ごとに同じパスを取ります。
アップデート
問題が修正されたことを全員に更新したかっただけです。Equals() または GetHashCode() の実装とは何の関係もないことがわかりました。大規模なデバッグを行ったところ、KeyNotFoundException が発生した理由は、そもそもキーが辞書に存在しなかったためであることがわかりました。問題は、複数のスレッドを使用してディクショナリにキーを追加していたことでした。これによれば、c# ディクショナリ クラスはスレッドセーフではありません。したがって、Add() が失敗したため、キーがディクショナリに追加されなかったタイミングは完璧だったに違いありません。これは、foreach ループがときどき null キーを生成していたことも説明できると思います。Add()'
助けてくれてありがとう!完全に私のせいで終わってしまい申し訳ありません。
c# - C# のマルチレベル辞書エラー
次のコードを使用してJSONを作成します
しかし、次の行に例外が表示されます
次のエラーが表示されます
指定されたキーは辞書にありませんでした
何が悪かったのか ?誰でも私を助けることができます
c# - KeyNotFoundException を与える C# 辞書、理由がわからない
私はアマチュア プログラマーであり、これは修正するのが簡単な問題のように思えますが、方法がわかりません。以下は、意図したとおりに動作しない C# コードです。これが 3 を返すことを期待していますが、代わりにKeyNotFoundException
. リストは同じなので、3 を返すべきではありませんか? 助けてくれてありがとう。