C# 如何在写入控制台时填充多个字符串,以便部件左对齐,部件右对齐?

C# 如何在写入控制台时填充多个字符串,以便部件左对齐,部件右对齐?,c#,C#,我试图将一行一行写入控制台和输出文件。我不知道如何填充字符串,以便在不同的WriteLine和StreamWrite之间,字符串的左部分向左对齐,右部分向右对齐 我尝试过使用\t,如果字符串的左侧部分与其他字符串的长度相似,则它可以很好地工作,但如果字符串的长度差异过大,则会失败 { sw.WriteLine($"{now} {typeOfTransaction} \t ${transacAmnt:0.00} ${currentbalance:0.00}"); } Expected Outp

我试图将一行一行写入控制台和输出文件。我不知道如何填充字符串,以便在不同的WriteLine和StreamWrite之间,字符串的左部分向左对齐,右部分向右对齐

我尝试过使用\t,如果字符串的左侧部分与其他字符串的长度相似,则它可以很好地工作,但如果字符串的长度差异过大,则会失败

{
sw.WriteLine($"{now} {typeOfTransaction} \t ${transacAmnt:0.00} ${currentbalance:0.00}");
}


Expected Output:
6/10/2019 4:15:44 PM Added Money         $10.00 $10.00
6/10/2019 4:15:53 PM Cloud Popcorn A4    $10.00 $6.35
6/10/2019 4:15:55 PM Cash Out            $6.35 $0.00

Actual Output:
6/10/2019 4:15:44 PM Added Money         $10.00 $10.00
6/10/2019 4:15:53 PM Cloud Popcorn A4    $10.00 $6.35
6/10/2019 4:15:55 PM Cash Out    $6.35 $0.00

您可以使用
String.Format+{index,length}

例如:
@itsme86建议的副本仅说明如何填充字符串。这个问题是关于在列中左/右对齐文本的。回答这个问题不仅仅是填充字符串。列的宽度必须是固定的,还是应该根据该列中最大的项目进行增长?@Romen如果将两个左/右填充字符串粘在一起,就得到了列。我不认为这是一个太大的飞跃。@itsme86,我在评论的最后留下了一个问题,我希望布拉德我也能看到。如果他们需要可变大小的列,那么
string.Format()
是不够的。已经选择了一个提供固定宽度列的答案,所以我想这就是他们所需要的。
Console.WriteLine(String.Format("{0,-10}  {1,-20}  ${2,-10} ${3,-10}", DateTime.Now, "Added Money", 10.00,10.00));
Console.WriteLine(String.Format("{0,-10}  {1,-20}  ${2,-10} ${3,-10}", DateTime.Now, "Cloud Popcorn A4", 10.00,6.35));
Console.WriteLine(String.Format("{0,-10}  {1,-20}  ${2,-10} ${3,-10}", DateTime.Now, "Cash Out", 6.35,0.00));