Форматирование строк с интервалом
-
21-12-2019 - |
Вопрос
Хорошо, я просто пытаюсь сделать mail.body
часть моего smtp email sub
выглядит мило.Пока у меня есть этот код:
With myStringBuilder
.AppendLine("Golfer Name" & vbTab & vbTab & vbTab & vbTab & "Average Quota")
.AppendLine(vbCrLf)
For Each row As DataRow In golfersTable.Rows
.Append(String.Format("{0,-10}{1,40}", row.Item("Golfer Name"), row.Item("Average Quota")))
Next
End With
mail.Body = myStringBuilder.ToString
Я пытаюсь выровнять два столбца в теле, чтобы это выглядело красиво, пока вот результат:
Golfer Name Average Quota
B 20
J 0
D 28.375
C 16.5
Есть идеи, как мне заставить их идеально совпадать друг с другом?у меня не было большой практики с String.Format()
так что вполне возможно, что я испортил второй аргумент...Любая помощь очень ценится, спасибо!
Решение
Попробуйте это, я не проверял, но, надеюсь, это поможет вам двигаться в правильном направлении и извините за опечатки. VB.NET не является моим родным языком.
With myStringBuilder
.AppendLine("Golfer Name" & vbTab & vbTab & vbTab & vbTab & "Average Quota")
.AppendLine(vbCrLf)
For Each row As DataRow In golfersTable.Rows
.AppendFormat("{0,-10}{1}{1}{1}{1}{2:f3}", row["name"], vbTab, row["avgQuota"]).AppendLine()
Next
End With
Это позволит выровнять данные по тому же интервалу, что и заголовки.Я использую C#, поэтому не был уверен, как табуляция представлена внутри строки, поэтому я просто использую {1}, помещаю табуляцию 4 раза. Возможно, есть лучший способ сделать это, в C# я бы использовал " \ t ", но я не уверен, что это работает в VB.NET.