Просто для удовольствия, и поскольку вы сказали, что не хотите использовать встроенный строковый метод, я написал метод расширения.Я понятия не имею, насколько это эффективно.Это должно быть довольно эффективно, но я не даю никаких гарантий.
public static class StringExt
{
public static IEnumerable<char> DoubleChar(this IEnumerable<char> inString,
char dupChar)
{
foreach (char c in inString)
{
yield return c;
if (c == dupChar)
{
yield return c;
}
}
}
}
Затем вы можете использовать это так:
string x = new string("ABCXYZ".DoubleChar('X').ToArray());
Это также позволяет объединять вызовы без необходимости делатьнесколько копий вашей строки.Таким образом, вы можете сделать что-то вроде этого:
string x = new string("ABCXYZ".DoubleChar('X').DoubleChar('Y').ToArray());