Chcę tylko kluczy, a nie wartości słownika.
Nie udało mi się jeszcze uzyskać żadnego kodu, aby to zrobić. Używanie innej tablicy okazało się zbyt pracochłonne, ponieważ używam również remove.
Jak uzyskać listę kluczy w słowniku?
c#
list
dictionary
Athiwat Chunlakhan
źródło
źródło
yourDictionary
jest częścią obiektu, wyprowadzoną z funkcji, czy też nazwą parametru.Powinieneś być w stanie po prostu spojrzeć na
.Keys
:źródło
Aby uzyskać listę wszystkich kluczy
System.Linq jest obsługiwany w .Net Framework 3.5 lub nowszym. Zobacz poniższe linki, jeśli napotkasz jakiekolwiek problemy w korzystaniu z System.Linq
Program Visual Studio nie rozpoznaje System.Linq
Przestrzeń nazw System.Linq
źródło
using System.Linq;
muszę wiedzieć, które odpowiedzi zignorować. Przepraszam :).ToList()
wyrzucałem błąd, kiedy użyłem go tyle razy, więc przyszedłem tutaj, szukając odpowiedzi i zdałem sobie sprawę, że plik, w którym pracowałem, nie mausing System.Linq
:)Dictionary<string, object>.KeyCollection' does not contain a definition for 'ToList'
Odpowiedź Marca Gravella powinna ci pasować.
myDictionary.Keys
zwraca obiekt, który implementujeICollection<TKey>
,IEnumerable<TKey>
i ich nieogólne odpowiedniki.Chciałem tylko dodać, że jeśli planujesz również uzyskać dostęp do wartości, możesz zapętlić słownik w następujący sposób (zmodyfikowany przykład):
źródło
Pytanie jest trochę trudne do zrozumienia, ale domyślam się, że problem polega na tym, że próbujesz usunąć elementy ze słownika podczas iteracji po kluczach. Myślę, że w takim przypadku nie masz innego wyjścia, jak tylko użyć drugiej tablicy.
Jeśli możesz użyć ogólnych list i słowników zamiast ArrayList, to zrobiłbym to, jednak powyższe powinno po prostu działać.
źródło
Nie mogę uwierzyć w te wszystkie zawiłe odpowiedzi. Zakładając, że klucz jest typu: string (lub użyj 'var', jeśli jesteś leniwym programistą): -
źródło
using System.linq;
Lub tak:
źródło
W przypadku słownika hybrydowego używam tego:
źródło
Często używałem tego, aby uzyskać klucz i wartość w słowniku: (VB.Net)
(LayerList jest typu Dictionary (Of String, Integer))
źródło