Mam następujący słownik:
Dictionary<int,string> dic = new Dictionary<int,string>();
dic[1] = "A";
dic[2] = "B";
Chcę przefiltrować pozycje słownika i ponownie przypisać wynik do tej samej zmiennej:
dic = dic.Where (p => p.Key == 1);
Jak mogę zwrócić wynik jako słownik z tego samego typu [ <int,string>
]?
Próbowałem ToDictionary
, ale to nie działa.
Z góry dziękuję.
c#
linq
dictionary
linq-to-objects
Homam
źródło
źródło
Odpowiedzi:
ToDictionary
jest droga do zrobienia. To czyni pracę - jesteś po prostu używając go nieprawidłowo, prawdopodobnie. Spróbuj tego:dic = dic.Where(p => p.Key == 1) .ToDictionary(p => p.Key, p => p.Value);
Powiedziawszy to, zakładam, że naprawdę chcesz innego
Where
filtra, ponieważ twój obecny zawsze znajdzie tylko jeden klucz ...źródło