¿Existe una forma sencilla de establecer una string en una longitud fija (en C#), ya sea truncándola o rellenándola con espacios ( ' ' ).
Por ejemplo:
string s1 = "abcdef"; string s2 = "abc"; después de establecer ambos en la longitud 5 , deberíamos tener:
"abcde" "abc "Todo lo que necesita es PadRight seguido de Substring (siempre que la source no sea null ):
string source = ... int length = 5; string result = source.PadRight(length).Substring(0, length); En caso de que la source pueda ser null :
string result = source == null ? new string(' ', length) : source.PadRight(length).Substring(0, length);private string fixedLength(string input, int length){ if(input.Length > length) return input.Substring(0,length); else return input.PadRight(length, ' '); }Usaría la respuesta @waka, pero como método de extensión y verificación nula, así:
public static string FixedLength(this string value, int totalWidth, char paddingChar) { if (value is null) return new string(paddingChar, totalWidth); if (value.Length > totalWidth) return value.Substring(0, totalWidth); else return value.PadRight(totalWidth, paddingChar); }