Edit: Uhg Я только что понял, что этот вопрос был для 2.0, но я оставлю его на случай, если у вас есть доступ к 3.5.
Просто еще один пример с Linq. Теперь я использовал List вместо Char [], но только для того, чтобы он выглядел немного чище. В массивах нет метода IndexOf, но есть в List. Зачем мне это нужно? Из того, что я предполагаю, нет прямой связи между списком замены и списком заменяемых. Просто указатель.
Так что, имея это в виду, вы можете сделать это с Char [] просто отлично. Но когда вы видите метод IndexOf, вы должны добавить перед ним .ToList ().
Примерно так: someArray.ToList (). IndexOf
String text;
List<Char> patternsToReplace;
List<Char> patternsToUse;
patternsToReplace = new List<Char>();
patternsToReplace.Add('a');
patternsToReplace.Add('c');
patternsToUse = new List<Char>();
patternsToUse.Add('X');
patternsToUse.Add('Z');
text = "This is a thing to replace stuff with";
var allAsAndCs = text.ToCharArray()
.Select
(
currentItem => patternsToReplace.Contains(currentItem)
? patternsToUse[patternsToReplace.IndexOf(currentItem)]
: currentItem
)
.ToArray();
text = new String(allAsAndCs);
Это просто преобразует текст в массив символов, выбирает через каждый из них. Если текущего символа нет в списке замены, просто отправьте обратно символ как есть. Если он находится в списке замены, верните символ в том же индексе в списке замены. Последнее, что нужно сделать, это создать строку из массива символов.
using System;
using System.Collections.Generic;
using System.Linq;