Заменить несколько символов в строке разными символами - PullRequest
1 голос
/ 18 февраля 2020

Я преобразую список в строку, и мне интересно, есть ли более упрощенный способ замены нескольких символов на разные символы. Я кодирую в C#, и вот как выглядит мой список:

[0]: [Key1, Value1]
[1]: [Key2, Value2]
[2]: [Key3, Value3]
...

Итак, я хотел заменить "," w / "=" и оба "[]" на "" чтобы достичь этого формата:

Key1=Value1
Key2=Value2
Key3=Value3
...

Я уже получил этот формат, используя следующий код, приведенный ниже, и я немного обеспокоен тем, что чрезмерно использую команду «Заменить».

string out = string.Join("\n", listOfLines).Replace(", ", "=").Replace("[", "").Replace("]","");

Я нашел похожий вопрос , но он указывает, что все символы заменяются только на "\ n".

Любая помощь будет принята с благодарностью , Спасибо!

Ответы [ 3 ]

2 голосов
/ 18 февраля 2020

Так как вы упомянули в комментарии, что данные исходили из словаря, вы можете l oop просмотреть словарь и отформатировать данные так, как вам нравится.

Пример кода с Dictionary<string, object>:

var dict = new Dictionary<string, object>();
dict.Add("key1", 1);
dict.Add("key2", "string");
dict.Add("key3", true);
dict.Add("key4", new DateTime(2020, 1, 1));

foreach (KeyValuePair<string, object> kv in dict) {
    Console.WriteLine(string.Format("{0}={1}", kv.Key, kv.Value.ToString()));
}
1 голос
/ 18 февраля 2020

Вы можете избежать одного Replace с помощью Regex.

Regex pattern = new Regex(@"[\[,\]]");
string outval = pattern.Replace(string.Join("\n", listOfLines), "")
                       .Replace(", ", "=");
0 голосов
/ 18 февраля 2020

Вы можете использовать метод расширения, подобный следующему:

    public static IEnumerable<char> ReplaceMultiple(this IEnumerable<char> input, Dictionary<char, char> replaces) 
    {
        foreach(var character in input)
            yield return replaces.ContainsKey(character) ? replaces[character] : character;
    }

Но лично я считаю, что если для замены требуется менее 6-7 символов, использование нескольких заменителей гораздо более читабельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...