Как я усекаю строку.NET?

Вам необходимо создать полный URL-адрес в виде строки, прежде чем передать его второму аргументу функции.

Примерно так:

std::string url = "localhost:8080/test.php?username=";
url = url + UserNameBuffer + "&token=" + TokentBuf;
URLDownloadToFile(NULL, url.c_str() , "C:\\test.txt", 0, NULL);

Концепция параметров HTTP не имеет ничего общего с концепцией параметров функции для функции URLDownloadToFile.

378
задан Mark Amery 16 December 2017 в 14:40
поделиться

5 ответов

К сожалению, для строки нет метода Truncate(). Вам придется писать такую логику самостоятельно. Однако вы можете обернуть это в метод расширения, чтобы не дублировать его повсюду:

public static class StringExt
{
    public static string Truncate(this string value, int maxLength)
    {
        if (string.IsNullOrEmpty(value)) return value;
        return value.Length <= maxLength ? value : value.Substring(0, maxLength); 
    }
}

Теперь мы можем написать:

var someString = "...";
someString = someString.Truncate(2);
578
ответ дан 22 November 2019 в 23:57
поделиться

Мои два цента с длиной примера 30:

  var truncatedInput = string.IsNullOrEmpty(input) ? 
      string.Empty : 
      input.Substring(0, Math.Min(input.Length, 30));
1
ответ дан 22 November 2019 в 23:57
поделиться

Вы можете использовать LINQ... он устраняет необходимость проверки длины строки. Возможно, не самый эффективный, но забавный.

string result = string.Join("", value.Take(maxLength)); // .NET 4 Join

or

string result = new string(value.Take(maxLength).ToArray());
27
ответ дан 22 November 2019 в 23:57
поделиться

В .net для этого ничего нет, насколько я знаю - вот моя версия, которая добавляет "...":

public static string truncateString(string originalString, int length) {
  if (string.IsNullOrEmpty(originalString)) {
   return originalString;
  }
  if (originalString.Length > length) {
   return originalString.Substring(0, length) + "...";
  }
  else {
   return originalString;
  }
}
-1
ответ дан 22 November 2019 в 23:57
поделиться

Или вместо тернарного оператора вы можете использовать Math.min

public static class StringExt
{
    public static string Truncate( this string value, int maxLength )
    {
        if (string.IsNullOrEmpty(value)) { return value; }

        return value.Substring(0, Math.Min(value.Length, maxLength));
    }
}
118
ответ дан 22 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: