Ответ 1
String.Concat не служит вашей цели здесь. Вы должны сделать следующее:
if(A.Length > 40)
B= A.Substring(0,40);
else
B=A;
Хорошо, ребята, я знаю, работает ли /else, мне нужна была альтернатива.
Я использую
B = String.Concat(A.Substring(0, 40));
для захвата первых 40 символов значения.
Если значение в A
больше, чем 40
, B
может захватывать, но если значение A
меньше 40
, то значение B
.
String.Concat не служит вашей цели здесь. Вы должны сделать следующее:
if(A.Length > 40)
B= A.Substring(0,40);
else
B=A;
Быстрая и грязная:
A.Length > 40 ? A.Substring(0, 40) : A
Почему бы не создать расширение для него... назовите его Truncate или Left или что-то еще.
public static class MyExtensions
{
public static string Truncate(this string s, int length)
{
if(s.Length > length) return s.Substring(0, length);
return s;
}
}
Тогда вы можете просто называть его так:
string B = A.Truncate(40);
Также обратите внимание, что вам не нужно делать это методом расширения, хотя он будет более чистым.
В вашем классе StringTool:
public static string Truncate(string value, int length)
{
if(value.Length > length) return value.Substring(0, length);
return value;
}
И чтобы называть его:
string B = StringTool.Truncate(A, 40);
Расширения лучше всего подходят для таких проблем;) У меня есть грязное имя, но все знают, что он будет делать - это исключая безопасную подстроку:
public static string SubstringNoLongerThanSource(this string source, int startIndex, int maxLength)
{
return source.Substring(startIndex, Math.Min(source.Length - startIndex, maxLength));
}
используйте ниже код для подстроки
B = String.padright(40).Substring(0, 40))
Вы можете использовать Left от Microsoft.VisualBasic.Strings
.
B = Microsoft.VisualBasic.Strings.Left(A, 40);
Не знаю, почему вы хотите использовать Concat
, в любом случае.
B = string.Concat(A.Substring(0, Math.Min(40, A.Length)));