una - string c# ejemplos
La subcadena no funciona como se esperaba si la longitud es mayor que la longitud de la Cadena (7)
¿Por qué no crear una extensión para él? Llámelo Truncate o Left, o lo que sea.
public static class MyExtensions
{
public static string Truncate(this string s, int length)
{
if(s.Length > length) return s.Substring(0, length);
return s;
}
}
Entonces simplemente puedes llamarlo así:
string B = A.Truncate(40);
También tenga en cuenta que no tiene que convertirlo en un método de extensión, aunque sería más limpio.
En tu clase de StringTool:
public static string Truncate(string value, int length)
{
if(value.Length > length) return value.Substring(0, length);
return value;
}
Y para llamarlo:
string B = StringTool.Truncate(A, 40);
Ok chicos, sé que si no funciona, necesitaba una alternativa.
estoy usando
B = String.Concat(A.Substring(0, 40));
Para capturar los primeros 40 caracteres de un valor.
Si el valor en A
es mayor que 40
, B
puede capturar, pero si el valor de A
es menor que 40
, no se captura ningún valor en B
Las extensiones son mejores para problemas como este;) Los míos tienen un nombre sucio, pero todos saben lo que haría; esta es una subcadena segura de excepciones:
public static string SubstringNoLongerThanSource(this string source, int startIndex, int maxLength)
{
return source.Substring(startIndex, Math.Min(source.Length - startIndex, maxLength));
}
No entiendo el propósito de pasar solo una cadena en String.Concat. Su propósito puede ser resuelto por:
if(A.Length > 40)
B= A.Substring(0,40);
else
B=A;
Puedes usar Left from Microsoft.VisualBasic.Strings
.
B = Microsoft.VisualBasic.Strings.Left(A, 40);
No sé por qué quieres usar Concat
, de todos modos.
Rápido y sucio:
A.Length > 40 ? A.Substring(0, 40) : A
Utilice el código de abajo para subcadena
B = String.padright(40).Substring(0, 40))
B = string.Concat(A.Substring(0, Math.Min(40, A.Length)));