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

221
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

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

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

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

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

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

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

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

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

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

2518