Я пытаюсь сделать так, чтобы цены на продукты в текстовой области были прямыми.Однако, поскольку длина названий продуктов различна, для выравнивания цен по вертикали потребуется разное количество «\ t».
Вот пример того, что я пытаюсь сделать:
string text = "1X " + "ABC Brand Drink \t\t\t\t " + price + "\n" + "2X" +
"BCD Drink that has a longer name \t\t" + price;
Мой вопрос: есть ли способ сделать мои цены вертикально выровненными, не используя все escape-последовательности "\ t"?Я не знаю, сколько "\ t" текста будет сгенерировано программно, поэтому я не знаю, как измерить #.
Вот пример выходных данных, над которыми я работаю: https://imgur.com/a/kE0HJY6
Я пытаюсь использовать это в шаблоне API HelloSign для заполнения настраиваемого текстового поля.
ОБНОВЛЕНИЕ: До сих пор я использовал свойство String.PadRight, как было предложено в комментариях, оно работает, но цена все еще не полностью выровнена.Вот изображение текущего результата: https://imgur.com/a/ZdaTqaW. Вот коды, которые я использовал:
ArrayList al = new ArrayList();
string prodName = "Try out product A and product B2";
string price = "$620";
string quantity = "1X";
Product a = new Product(prodName, price, quantity);
al.Add(a);
string prodName2 = "Out product A and product Basdasddddddasd";
string price2 = "$650";
string quantity2 = "123X";
al.Add(new Product(prodName2, price2, quantity2));
string str = "";
string abs = "";
int nam, quan = 0;
int asdsd = 0;
foreach (Product p in al)
{
abs = "";
nam = p.ProdName.Length;
quan = p.ProdQuantity.Length;
abs += p.ProdQuantity + " " + p.ProdName;
//if ((nam + quan) % 2 == 0)
//{
// asdsd = (175 - (nam + quan));
//}
//else
//{
// asdsd = (175 - (nam + quan) - 1);
//}
asdsd = (175 - (nam + quan));
str += abs.PadRight(asdsd) + p.ProdPrice + "\n\n";
Пожалуйста, игнорируйте имена переменных, я изменю их после того, как все будет завершено.