> 백엔드 개발 > C++ > 일반 사전의 단일 값과 연관된 여러 키를 검색하려면 어떻게 해야 합니까?

일반 사전의 단일 값과 연관된 여러 키를 검색하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2025-01-21 03:42:10
원래의
710명이 탐색했습니다.

How Can I Retrieve Multiple Keys Associated with a Single Value in a Generic Dictionary?

일반 사전에서 특정 값에 대한 여러 키 검색

인덱서 구문을 사용하면 .NET 일반 사전에서 지정된 키를 기반으로 값을 검색하는 것이 매우 간단합니다. 그러나 동일한 값을 가진 키가 여러 개 있을 수 있으므로 지정된 값에 해당하는 키를 검색하는 것이 더 어려울 수 있습니다.

BiDictionary 데이터 구조 소개

이 문제를 해결하기 위해 키와 값 사이의 양방향 매핑이 가능한 BiDictionary 데이터 구조가 개발되었습니다. 두 개의 내부 사전을 유지합니다:

  • firstToSecond: 첫 번째 유형 키를 두 번째 유형 값에 매핑하는 목록입니다.
  • secondToFirst: 두 번째 유형 값을 첫 번째 유형 키에 매핑하는 목록입니다.

구현내역

BiDictionary 클래스는 키-값 쌍을 추가하고 두 키 유형 중 하나를 기반으로 값을 검색하는 메서드를 제공합니다. 예:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

IList<int> betaKeys = greek["Beta"]; // 返回 [2, 5]</code>
로그인 후 복사

이 구현에서는 존재하지 않는 키에 대한 기본 반환 값으로 빈 목록을 사용하므로 목록이 비어 있어도 항상 목록을 받을 수 있습니다.

맞춤형 인덱서

편의를 위해 BiDictionary에는 호출 키 유형에 따라 내부 사전에 직접 액세스할 수 있는 사용자 정의 가능한 인덱서가 포함되어 있습니다. 이렇게 하면 인덱서 구문을 사용할 수 있어 값에 대한 액세스가 단순화됩니다.

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");

string secondGreek = greek[2]; // 返回 "Beta"</code>
로그인 후 복사

사용예

제공된 코드는 BiDictionary의 기능을 보여줍니다.

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

ShowEntries(greek, "Alpha"); // 打印 "Alpha: [1]"
ShowEntries(greek, "Beta"); // 打印 "Beta: [2, 5]"
ShowEntries(greek, "Gamma"); // 打印 "Gamma: []"</code>
로그인 후 복사

이 예제는 주어진 값에 해당하는 키를 검색하는 방법을 보여 주며, 존재하지 않는 값의 경우 빈 목록을 반환하여 정상적으로 처리합니다.

위 내용은 일반 사전의 단일 값과 연관된 여러 키를 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿