"사전"데이터베이스가 있고 특정 위치의 요소를 반환하고 싶습니다. "ElementAt"기능이 있지만 사용하지 못했습니다.C#에서 사전의 특정 위치에서 요소를 제거하려면 어떻게해야합니까?
왜 그런 일이 발생하지 않습니까? 그것은 나에게 다음과 같은 오류 알려줍니다
closeHash.ElementAt<State>(i);
:
오류 3 'System.Collections.Generic.Dictionary' 'ElementAt'최고의 확장 메서드 오버로드 '에 대한 정의를 포함하지 않는 System.Linq.Queryable
if (closeHash.ContainsKey(i) && ((State)closeHash[i]).getH() +
((State)closeHash[i]).getG() > checkState.getH() + checkState.getG()
: closeHash [내가] 나에게 인덱스 만이 아닌 실제 요소를 제공하기 때문에 .ElementAt (System.Linq.IQueryable, INT)는 '일부 잘못된 인수
또한이 코드 나던 일을 가지고
사전의 각 요소는 "State"클래스이며 checkState도 GetH 및 GetG 함수가있는 상태입니다. Ith position에서 요소를 꺼내서 제거하고 제거하기 만하면됩니다.
미리 감사드립니다.
그렉
'특정 위치'는 무엇을 의미합니까? 사전은 순서가 없습니다 - 대신 SortedDictionary 또는 SortedList를 사용할 수 있습니까? – thecoop