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