2010-08-18 7 views
0

나는 사전 쌍을 가지고 있습니다. 사전 "paramList"의 객체를 만듭니다. 이제 그 객체에 키와 값 쌍을 추가했습니다. 이제 다른 페이지에 있는지 알고 싶습니다. 어떤 방법 paramList 객체와 해당 페이지에 내가 키를 알고 나는 내가 지금이사전 키 값 쌍 질문

Dictionary<string, object> paramList = new Dictionary<string, object>(); 
paramList.Add("@courseId", course_id); 
paramList.Add("@passoutYear", passoutYear); 
paramList.Add("@currentBacklog", currentBacklog); 
paramList.Add("@sex", sex); 

같은 개체가 내가 키 @key을 알고 원한다면 그렇게 할 수있는 방법을 다음 해당 값을 접근 할 해당 값을 알으십시오 나는 또한 개체가

+0

내가 질문을하지 않는다라는 것

Dictionary<string, object> paramList = new Dictionary<string, object> { { "@courseId", course_id }, { "@passoutYear", passoutYear }, { "@currentBacklog", currentBacklog }, { "@sex", sex }, }; 

. – citronas

+0

문구를 바꿔주세요 – NoviceToDotNet

답변

4

만약 내가 당신의 질문을 올바르게 이해, 키가 사전에 있는지 알아보고 값을 검색하려고합니다.

아마도 가장 간단한 방법은 확장 방법 TryGetValue

string key = "@key"; 
object value = null; 
if (paramList.TryGetValue(key, out value)) 
{ 
    // the key exists and the related value is now in value 
} 
else 
{ 
    // the key does not exist 
} 
+0

이 선생님을 한번 쯤 눈여겨 보아주세요 ...이 문제에서 나 자신을 없애기 위해 나는 질문에서 회로의 빈 매개 변수 값을 정렬하는 방법에 대해 고민 중입니다 ... http : // stackupflow.com/questions/3509538/asp-net-sql-or-collection-problem – NoviceToDotNet

3
//First check if the key exists in the dictionary and then get the item. 
if(paramList.ContainsKey("some-key")) 
{ 
object value = paramList["some-key"]; 
} 

편집 아니면 사용하고 있습니다. (더블 룩업을하지 않기).

static class DictionaryExtensions 
{ 
    public static TValue GetValueOrDefault<TKey,TValue>(this IDictionary<TKey,TValue> dict, TKey key) 
    { 
     TValue value; 
     if(dict.TryGetValue(key, out value)) 
      return value; 
     return default(TValue); 
    } 
} 

//Example usage 
paramList.GetValueOrDefault("mykey") ?? "mykey didn't exist"; 
+1

이것은 이중 사전 검색을 수행합니다. – abatishchev

+0

아마도 더 짧은'return dict.TryGetValue (key, out value)? value : default (TValue);' – abatishchev

+0

그리고 또 다른 제안 - 종종 그러한 메소드는 lookup 실패의 경우 디폴트 값을 나타내는 선택적 매개 변수 (예 : return dict.TryGetValue (key, out value)? 값 : defaultValue ?? 기본값 (TValue); – abatishchev

관련 문제