Есть ли прохладный способ взять что-то вроде этого:
Customer Name - City, State - ID Bob Whiley - Howesville, TN - 322 Marley Winchester - Old Towne, CA - 5653
и формат это к чему-то вроде этого:
Customer Name - City, State - ID Bob Whiley - Howesville, TN - 322 Marley Winchester - Old Towne, CA - 5653
Используя команды формата строки?
Я не слишком одержим тем, что сделать, если Вы очень длинны. Например, это было бы в порядке мной:
Customer Name - City, State - ID Bob Whiley - Howesville, TN - 322 Marley Winchester - Old Towne, CA - 5653 Super Town person - Long Town Name, WA- 45648
Обеспечить некоторый контекст. У меня есть выпадающее поле, которое показывает информацию, очень похожую на это. Прямо сейчас мой код для создания объекта в выпадающих взглядах как это:
public partial class CustomerDataContract
{
public string DropDownDisplay
{
get
{
return Name + " - " + City + ", " + State + " - " + ID;
}
}
}
Я ищу способ отформатировать это лучше. Какие-либо идеи?
Это - то, с чем я закончил:
HttpContext.Current.Server.HtmlDecode(
String.Format("{0,-27} - {1,-15}, {2, 2} - {3,5}",
Name, City, State, ID)
.Replace(" ", " "));
HtmlDecode изменяется на пространство, которое может противостоять форматированию удаления пространства выпадающего списка.
Вы также можете указать количество столбцов, занимаемых текстом как выравнивание, используя Console.WriteLine
или используя String.Format
:
// Prints "--123 --"
Console.WriteLine("--{0,-10}--", 123);
// Prints "-- 123--"
Console.WriteLine("--{0,10}--", 123);
Число указывает количество столбцов, которые вы хотите использовать, а знак указывает выравнивание ( -
] для выравнивания по левому краю, +
для выравнивания по правому краю). Итак, если вы знаете количество доступных столбцов, вы можете написать, например, что-то вроде этого:
public string DropDownDisplay {
get {
return String.Format("{0,-10} - {1,-10}, {2, 10} - {3,5}"),
Name, City, State, ID);
}
}
Если вы хотите вычислить количество столбцов на основе всего списка (например, самого длинного имени), тогда вы необходимо получить это число заранее и передать его в качестве параметра в DropDownDisplay
- это невозможно сделать автоматически.