Y a-t-il une structure de données en C# qui ressemble à un dictionnaire mais qui n'a qu'une clé et n'a pas de valeur? Je veux fondamentalement une liste d'entiers que je peux rechercher rapidement et voir si une certaine valeur est dans la liste. Accordé, pour mon utilisation actuelle, une liste ne causerait aucun problème de performance, mais cela ne semble pas aller bien avec l'intention de ce que fait mon code.C# Structure de données comme le dictionnaire mais sans valeur
48
A
Répondre
73
Oui, cela s'appelle HashSet<T>
et est disponible dans la version 3.5 du framework .NET. Si vous utilisez .NET version 2.0, vous pouvez utiliser un dictionnaire et définir des valeurs sur null.
0
ou utiliser un SortedList où les valeurs doivent être uniques
4
Si 3.5 n'est pas une option que vous pouvez faire quelque chose comme Dictionnaire < int, int> et simplement ignorer la valeur. J'ai fait cela en 2.0 et j'ai tendance à définir la valeur à la même chose que la clé.
2
Si vous ne ciblez pas .NET 3.5, Power Collections (open source) fournit également une implémentation Set.
Notez que Hashset a été introduit dans .NET Framework 3.5. Si vous utilisez une version antérieure, j'utilise un dictionnaire et définissez toutes les valeurs sur null. –
codeape
Une autre approche dans .NET 2.0 consiste à utiliser 'KeyedCollection' et à définir la méthode de l'extracteur de clé comme identité de valeur. –
plus d'informations sur l'utilisation de hashset: http://bit.ly/1FYcf –