잠재적으로는 System.Collections.Specialized.StringCollection을 사용할 수 있지만 사전과 같이 성능이 좋을지 모르며 키를 문자열로 전송해야합니다.
항상 Add 메서드에 무언가를 포함해야한다는 요구 사항이 성가신 경우 고유 한 제네릭 키 클래스를 만들 수 있습니다.이 클래스는 기본 .Net 구현이 발견 될 때 적용될 수 있습니다. 예를 들어, VB.Net 가정 :
Public Class KeyDictionary(Of T)
Inherits Dictionary(Of T, Boolean)
Public Overloads Sub Add(key As T)
MyBase.Add(key, False)
End Sub
End Class
다음 인스턴스를 선언하고 값 추가 :
Dim cKeys As New KeyDictionary(Of Integer)
If Not cKeys.ContainsKey(1) Then
cKeys.Add(1)
End If
하고, C#으로 :
public class KeyDictionary<T> : Dictionary<T, bool>
{
public void Add(T key)
{
base.Add(key, false);
}
}
인스턴스를 선언하고, 추가 값 :
var cKeys = new KeyDictionary<int>();
if (!(cKeys.ContainsKey(1)))
{
cKeys.Add(1);
}
'TValue'에 사용할 수있는 보조 키가 있습니까? 그렇지 않다면, 당신이 할 수있는 최선은'List'이고 술어를 사용하는 룩업이다. –
casperOne
@casperOne : 아니요, 열쇠가 필요합니다. – poke
이미 하나의 속성을 키잉하고 있지만 그룹의 항목을 구별 할 수있는 두 번째 속성이없는 경우 (여기서 '그룹화'를 실제로 수행하고 있음) 사전이 도움이되지 않습니다. – casperOne