Выполнить Replace по словарю через LINQ

180
15 марта 2018, 07:26

Допустим, есть Dictionary и текст.

Нужно по словарю заменить 1 буквы на другие.

Стандартное решение- это пройтись циклом по словарю и вызвать Replace N-раз.

А можно ли это изобразить в виде LINQ?

Answer 1

Если порядок замен не важен, то например так:

var dict = new Dictionary<string, string>() { ["Hello"] = "Goodbye", ["world"] = "America" };
var text = "Hello world";
var result = dict.Aggregate(text, (s, kvp) => s.Replace(kvp.Key, kvp.Value));
Console.WriteLine(result); // Goodbye America
READ ALSO
FileStream и пути длинною &gt;260 символов

FileStream и пути длинною >260 символов

Сначала программа валилась на получении списка фалов через DirectoryGetFiles с PathTooLongException

228
Записать в базу текст из динамически созданных textbox- ов

Записать в базу текст из динамически созданных textbox- ов

Одной кнопкой я создаю динамические массивы, введя их количество во второй текстбокс

215
Удаленный сервер возвратил ошибку 403

Удаленный сервер возвратил ошибку 403

Вчера работал над проектом, всё было нормальноСегодня при попытке скачать строку со страницы вылетает исключение

239
API Telegram. Как посмотреть время /дату последнего посещения пользователя telegram

API Telegram. Как посмотреть время /дату последнего посещения пользователя telegram

Можно ли посмотреть с помощью Telegram API время когда пользователь telegram был в сети последний раз? А то есть такие у которых включена last seen privacy...

2470