2010-03-16 4 views
2

사전 키 목록의 다음 상위 값을 주어진 값과 비교하여 반환하는 함수가 있습니다. 키 -리스트가 {1, 4, 10, 24}이고 주어진 값이 8이라면 함수는 10을 반환합니다.Value-Type과 관련이없는 사전 매개 변수

분명히 사전의 값 - 부분은 중요하지 않습니다. 기능하는

Dictionary<int, int> 

Dictionary<int, myClass> 

위한 기능 코드는 동일 할 것이다.

방법이 방법은 머리 나 키를 입력하고 가치 유형으로 INT 관련이있는 모든 사전과 함수를 호출 할 때, 같이해야?

private int GetClosedKey(Dictionary<int, object> list, int theValue); 

을하지만 내가 사전에 그것을 호출 할 때 불법 인수가 있다는 것을 말한다 :

나는 시도했다. 필자의 함수가 호출 될 수있는 각각의 다른 값 유형에 대해 함수를 복사하여 복사하고 싶지 않습니다. 어떤 생각, 어떻게 달성 할 수 있습니까? 사전에

감사합니다, 프랭크

답변

11
당신은 일반적인 할 수

:

대부분의 경우
private int GetClosedKey<T>(Dictionary<int, T> list, int theValue) 

, 당신은 당신에 대한 형식 인수를 지정하는 것을 피하기 위해 형식 유추를 사용할 수있는 메서드를 호출 할 때 T.

private int GetClosedKey(ICollection<int> list, int theValue) 

그리고 그것을 호출 :

그러나, 나는 로 변경을 고려할 코드가 더 일반적인하게

int value = GetClosedKey(dictionary.Keys, desiredValue); 

- 부부을 할 필요와 긴밀 없다 결국, 사전. 다른 것을 제외하고, 테스트가 더 간단해질 것입니다.

+0

@ 닉 : 나는 그렇게 생각하지 않는다. qusetion은 명확하지 않지만 실제로는 값이 아닌 키를 반환 할 것입니다. –

+0

나는 질문의 첫번째 완전한 문장을 지나서 스크롤했다. .. heh는 차이를 만든다. –

+0

그가하는 일에 대한 나의 해석은 이것이 그에게 옳다고 말합니다. – Adkins

관련 문제