Як я можу відфільтрувати словник за допомогою LINQ і повернути його до словника того ж типу


84

У мене є такий словник:

Dictionary<int,string> dic = new Dictionary<int,string>();
dic[1] = "A";
dic[2] = "B";

Я хочу відфільтрувати елементи словника і перепризначити результат тій самій змінній:

dic = dic.Where (p => p.Key == 1);

Як я можу повернути результат як словник того самого типу [ <int,string>]?

Я намагався ToDictionary, але це не працює.

Заздалегідь спасибі.


11
У майбутньому, якщо ви спробували очевидний підхід, але виявили, що він не працює, надішліть код, який ви спробували.
Джон Скіт,

Відповіді:


190

ToDictionaryце шлях. Це робить роботу - ви просто використовувати його неправильно, по- видимому. Спробуйте це:

dic = dic.Where(p => p.Key == 1)
         .ToDictionary(p => p.Key, p => p.Value);

Сказавши це, я припускаю, що ви дійсно хочете інший Whereфільтр, оскільки ваш поточний завжди знайде лише один ключ ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.