Редактировать: Uhg Я только понял, что этот вопрос был для 2.0, но я оставлю его, если у вас есть доступ к 3.5.
Просто еще один предмет Linq. Теперь я использовал List <Char> вместо Char [], но это только для того, чтобы выглядеть немного чище. На массивах нет метода IndexOf, но есть один в списке. Зачем мне это нужно? Ну, из того, что я предполагаю, нет прямой корреляции между списком замещения и списком заменяемых. Просто индекс.
Итак, имея в виду, вы можете сделать это с помощью 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;
Симпатичный вывод ... Как вам удалось добавить функцию в String? – 2008-10-03 13:52:42