の最も内側の辞書あなたDictionary
とArrayList
内の任意の要素から著者は、コンパイラが「doesnの意味、object
としてを扱われます実際のタイプを知ることはできません。辞書は"items"
キーが含まれていない場合は、しかし、
ArrayList list = (ArrayList)dict["items"];
を、または"items"
キーの値がArrayList
でない場合、このコードは以下となります。これらの要素のいずれかを使用するには、あなたはそれをキャストする必要があります例外をスローします。データ構造の内容が常に同じであることが分かっている場合は、これは問題である必要はありません。 ArrayList
へのアクセス
ArrayList items = o as ArrayList;
if (items == null)
{
// items is not an ArrayList!
}
が鋳造ビットについて同様です: - - キャスト要素
object o;
if (!dict.TryGetValue("items", out o))
{
// item not found!
}
そしてテスト:
あなたは辞書は、特定のエントリが含まれているかどうかをテストすることができます。
"Kind"、 "TotalItems"、 "Items"の各プロパティを持つオブジェクトを作成すると、データへのアクセスが簡単になり(コード作成が簡単になります)。このデータ構造がJsonまたはXmlの逆シリアル化の結果であっても、専用クラスにデシリアライズできるシリアライザがあります。
ようこそスタックオーバーフロー。コードを追加する必要があります。あなたがしていることの説明だけでは十分ではありません。 – Sefe
カスタムタイプ(クラス)を使用することをお勧めします。何千もの辞書よりも扱いが簡単です。 – Sebi
質問は何ですか?どのように各オブジェクトの種類を決定する? 'as'または' is'でタイプをチェックしようとしましたか?または 'OfType <>' LINQ演算子ですか?このようなあいまいな質問をするのは非常に難しいです。それを変更するには、実際のコードをリバースエンジニアリング*する必要があります。 –