Добавить определенное количество символов из строки в другую строку - PullRequest
2 голосов
/ 26 мая 2011

Это довольно простой вопрос, но здесь он звучит так: есть ли в C # строковый метод, который добавляет количество символов из строки в другую строку? В классе C ++ std :: string был метод append, который имел три параметра: исходная строка, indexStart, offset.

string a = "foo";
string b = "bar";

a.append(b, 0, 2); // a is now "fooba";

В C # я тоже пробовал с StringBuilder, но не повезло.

Ответы [ 4 ]

5 голосов
/ 26 мая 2011

Строки в .NET являются неизменяемыми.Как только строка создана, вы не можете ее изменить.Однако вы можете создать новую строку путем конкатенации и переназначить ее той же переменной:

string a = "foo";
string b = "bar";

a = a + b.Substring(0, 2); // a is now "fooba";
4 голосов
/ 27 мая 2011

Если вы любите приключения, вы также можете написать метод расширения:

public static class MyStringExtensions
{
    public static string Append(this string original, string textToAdd, int length)
    {
        if (length <= 0)
        {
            return original;
        }

        var len = (textToAdd.Length < length)
                      ? textToAdd.Length
                      : length;

        return original + textToAdd.Substring(0, len);
    }
}

Тогда, чтобы использовать его, вы бы пошли так:

string a = "foo".Append("bar", 2);

или

string a = "foo";
string b = "bar";
string c = a.Append(b, 2);

Это также имеет приятное преимущество, позволяя обрабатывать ошибки / исключения в центральном месте.

4 голосов
/ 26 мая 2011
string a = "foo";
string b = "bar";

var sb = new StringBuilder();
sb.append(a);
sb.append(b.SubString(0,2));

string res = sb.ToString(); // res = "fooba"
2 голосов
/ 27 мая 2011

Попробуйте сделать

 string aa = "foo";
            string bb = "bad";
            bb= string.Concat(aa, bb.Substring(0, 2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...