0
我想用TryGetValue方法訪問字典safelay上的某個屬性。可以在深層嵌套字典上使用TryGetValue嗎?
例如一個條目我會直接訪問這樣的:
jsonObject[prop1][prop2][0][prop3]
有任何方便的方式這樣做呢?
我想用TryGetValue方法訪問字典safelay上的某個屬性。可以在深層嵌套字典上使用TryGetValue嗎?
例如一個條目我會直接訪問這樣的:
jsonObject[prop1][prop2][0][prop3]
有任何方便的方式這樣做呢?
這裏有一個想法(未經測試)。它假設一個嵌套IDictionary
至少深如指定鍵的數量,並在object
作品(當然,你可以做的事情,使這個通用):
bool TryGetNestedValue (this IDictionary dict, out object value,
params object[] keys)
{
for(int i = 0; i < keys.Length; i++)
{
var key = keys[i];
if (!dict.Contains(key))
{
value = null;
return false;
}
if (i == keys.Length - 1)
{
value = dict[key];
return true;
}
dict = dict[key];
}
throw new ArgumentException("keys");
}
你期望它做如果價值不存在?什麼類型是'jsonObject'? – 2013-03-21 13:14:40