Создать строку больше фиксированной длины - PullRequest
2 голосов
/ 21 июня 2010

В моем приложении длина строки, генерируемой, может варьироваться от 1 до 100 (без использования случайного числа algo). Но я хочу, если длина меньше 7, чем нужно добавить целые числа 1,2,3 .. до достижения его размера до 7. Я реализую его, используя цикл while как:

If generatedUserName.Length < 7 Then
    Dim count As Int32 = 0
    While generatedUserName.Length < 7
        generatedUserName = generatedUserName & count.ToString()
        count = count + 1
    End While
End If

Есть ли другой способ лучше, например, встроить функцию Tostring () с некоторым параметром?

1 Ответ

6 голосов
/ 21 июня 2010

Самый простой способ будет выглядеть примерно так:

if (generatedUserName.Length < 7)
{
    generatedUserName = (generatedUserName + "1234567").Substring(0, 7);
}

Это немного неэффективно, но вряд ли приведет к узкому месту ...

Другой альтернативой будет:

if (generatedUserName.Length < 7)
{
    string suffix = "1234567".Substring(0, 7 - generatedUserName.Length);
    generatedUserName = generatedUserName + suffix;
}

Немного более эффективный (но ужасный) способ:

private static readonly string[] Suffixes = {
    "1234567", "123456", "12345", "1234", "123", "12", "1"
};
...

if (generatedUserName.Length < 7)
{
    generatedUserName = generatedUserName + Suffixes[generatedUserName.Length];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...