.NET에서 정렬 된 컬렉션을 검색하여 인덱스를 가져 오거나 인덱스가없는 경우의 인덱스를 얻으시겠습니까?컬렉션에 대해 키를 검색하고 존재하지 않는 경우 다음으로 높은 항목을 얻는 방법은 무엇입니까?
예를 들어 요소 {1,5,8,10}을 포함하는 목록이 있습니다. 나는 7을 찾는다. 존재하지 않지만 그 다음으로 높은 키는 의 색인을 갖는 8이다.
예 :
SortedList<int, int> list = new SortedList<int, int>();
list.Add(1, 1);
list.Add(5, 1);
list.Add(8, 1);
list.Add(10, 1);
int index = list.IndexOfKeyOrNext(7); // theoretical function. returns 2
나는 7시에 임시 항목을 추가하여이 작업을 수행 할 수 있습니다, list.IndexOfKey를 호출 (7), 다음 내 임시 항목을 제거. 그러나 이것은 느립니다. 더 좋은 방법이 있습니까?
편집 : 내 목록이 정렬됩니다.
명확히하십시오 : 당신은 목록 또는 SortedList 을 사용하고 있습니다. 후자는 Add (T)를 지원하지 않습니다. 키와 값을 모두 제공해야합니다. –
SortedList를 사용하고 있습니다. Add() 호출에 값을 추가하는 예제 코드가 수정되었습니다. – abtree