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'는 어떤 타입입니까? –