String są immutable, nie mogą być zmieniane. PadRight
zwraca nową instancję łańcucha wyściełaną, nie zmieniając tej, z której została wywołana. Co chcesz to:
Trip_Name1 = Trip_Name1.PadRight(20,' ');
Istnieje wielka dyskusja na this StackOverflow pytanie, dlaczego ciągi są niezmienne.
EDIT:
Żaden z tym wydaje się działać. Mogę jednak podłożyć strunę dowolną inną postacią.
Czy w rzeczywistości przypisujesz je tak, jak w powyższym przykładzie? Jeśli tak jest w istocie - to bez bardziej szczegółowo mogę myśleć tylko o następujące elementy:
- Jeśli przechowywania tego w bazie danych i pobieranie go, niektóre bazy danych z prawidłowymi ustawieniami może „Trim” dla Ciebie.
- Masz logikę w innym miejscu, która przycina białe przestrzenie. Jest to powszechne w przypadku wprowadzania danych przez użytkownika.
EDIT 2:
I powinien być bardziej konkretny
Idę wziąć dzikie przypuszczenie na podstawie konwencji nazewnictwa, że masz do czynienia z HTML/ASP.NET. W większości przypadków w HTML - white space is collapsed. Na przykład:
<div><a>Hello World</a></div>
<div><a>Hello World</a></div>
Oba a
tagów uczyni to samo, ponieważ white-space jest zwinięty. Jeśli rzeczywiście pracujesz z HTML-em to prawdopodobnie jest twój powód i dlaczego wyściółka działa dla wszystkich innych postaci. Jeśli tworzysz widok źródła renderowanego znacznika - czy zawiera on dodatkowe białe spacje?
Jeśli chcesz zachować białe spacje, spróbuj zastosować styl CSS na swoim elemencie o nazwie white-space
i ustawić go na pre
. Na przykład:
<a style="white-space:pre">hello world </a>
To spowoduje zachowanie białej przestrzeni. Należy pamiętać, że korzystanie z białej przestrzeni ma takie wady. Przeglądarki nie renderują ich w sposób identyczny itp. Nie użyłbym tego do celów układu.Rozważ skorzystanie z CSS i coś takiego jak min-width
.
Co to jest 'Trip_Name1' w twoich testach? Jaka jest wartość zwracana tych metod (tj. Co "* wydaje się nie działać" *)? Jesteś świadomy, że te metody nie zmienią wartości 'Trip_Name1', prawda? –
Czy możesz podać przykładowy kod? Nawiasem mówiąc, ciągi są niezmienne i musisz ponownie przypisać wartość wyniku po dopełnieniu –
Powinienem być bardziej szczegółowy, tutaj jest pełny kod: lnk_showmatch_1.Text = u_trip.Trip_Name1.PadRight (20, ''); – Bruce