일반 사전에서 특정 값에 대한 여러 키 검색
인덱서 구문을 사용하면 .NET 일반 사전에서 지정된 키를 기반으로 값을 검색하는 것이 매우 간단합니다. 그러나 동일한 값을 가진 키가 여러 개 있을 수 있으므로 지정된 값에 해당하는 키를 검색하는 것이 더 어려울 수 있습니다.
BiDictionary 데이터 구조 소개
이 문제를 해결하기 위해 키와 값 사이의 양방향 매핑이 가능한 BiDictionary 데이터 구조가 개발되었습니다. 두 개의 내부 사전을 유지합니다:
구현내역
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!