您可能會使用System.Collections.Specialized.StringCollection,但我不確定它是否與Dictionary類似,並且需要您將鍵轉換爲字符串。
如果總是在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
如果你已經鍵入一個屬性,但沒有第二個屬性來區分組中的項目(你真的在這裏做一個「group by」),那麼沒有字典可以幫助你。 – casperOne