>백엔드 개발 >C++ >C#의 값을 기반으로 사전 키를 효율적으로 검색하려면 어떻게 해야 합니까?

C#의 값을 기반으로 사전 키를 효율적으로 검색하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-30 21:19:23165검색

How Can I Efficiently Retrieve Dictionary Keys Based on Values in C#?

C#에서 값을 기반으로 사전 키 검색

C#에서 사전은 각 고유 키가 단일 값에 해당하는 키-값 쌍입니다. . 그러나 값에서 키를 검색하는 것은 직접 지원되지 않습니다. 이 문서에서는 이 문제를 해결하기 위한 효율적인 솔루션을 제공합니다.

조회 사용

사전의 값은 고유하지 않을 수 있으므로 조회를 수행하여 해당 키. 이는 다음과 같이 Queryable 클래스의 FirstOrDefault 메서드를 사용하여 달성할 수 있습니다.

var myKey = types.FirstOrDefault(x => x.Value == "one").Key;

이 줄은 람다 식을 사용하여 사전을 반복하고 연결된 값이 "1"과 일치하는 첫 번째 키를 반환합니다.

역사전 사용

사전의 값이 다음과 같이 보장되는 경우 고유하고 읽기보다 삽입 빈도가 낮은 경우 값이 키가 되고 그 반대의 경우도 있는 또 다른 사전을 만들 수 있습니다. 이 역 사전은 키 검색 속도를 높일 수 있습니다.

Dictionary<string, string> inverseTypes = new Dictionary<string, string>();

foreach (var item in types)
{
    inverseTypes[item.Value] = item.Key;
}

string myKey = inverseTypes["one"];

이 접근 방식을 사용하면 값으로 키를 직접 조회할 수 있지만 원본 사전과 역 사전을 모두 유지해야 합니다.

HashTable 또는 SortedLists

해시 테이블과 정렬된 목록은 키 검색에 적합하지 않습니다. 사전으로서의 가치. 일반적으로 특정 값을 기반으로 키를 검색하는 효율적인 방법을 제공하지 않습니다. 사전은 키-값 쌍을 효율적으로 처리하도록 특별히 설계되었습니다.

위 내용은 C#의 값을 기반으로 사전 키를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.