C# 对齐N列的单个字符

C# 对齐N列的单个字符,c#,string,string-formatting,C#,String,String Formatting,我试图通过为WFA中的每一行通过标签输出一个字符串,使C#中有N个单字符列。我试图使用使用String.Format找到的解决方案,但我无法使用,因为我不知道列的数量,我也不认为它会起作用,因为字符的宽度不同 我尝试生成一个字符串作为string.Format的第一个参数传递,然后提供一行的字符数组作为第二个参数,但是我得到了错误索引(从零开始)必须大于或等于零,并且小于参数列表的大小。这让人困惑,因为我已经保证这是真的 //generatedText is built in a loop co

我试图通过为WFA中的每一行通过标签输出一个字符串,使C#中有N个单字符列。我试图使用使用String.Format找到的解决方案,但我无法使用,因为我不知道列的数量,我也不认为它会起作用,因为字符的宽度不同

我尝试生成一个字符串作为string.Format的第一个参数传递,然后提供一行的字符数组作为第二个参数,但是我得到了错误
索引(从零开始)必须大于或等于零,并且小于参数列表的大小。
这让人困惑,因为我已经保证这是真的

//generatedText is built in a loop consisting of  += "{" + i + ", -2} "
row1.Text = String.Format(generatedText, myCharArray); //error!
用空格分隔每一列的简单解决方案根本不起作用,因为字符的宽度不同,所以它们很快就会偏移(我认为String.Format可以解决这个问题,如果我能让它工作的话)

有没有关于修正我对String.Format的使用的建议,或者让文本固定宽度的方法,或者其他解决我问题的方法

编辑:我尝试对一定数量的列使用String.Format,但由于字符宽度不同,无法正确对齐。其他解决方案

示例输出类似于

Row 1:  a  j  e  t  v  q  p  z  c
Row 2:  c  c  b  r  m  a  s  t  m

柱子排得很整齐

除非您使用@Scott Hunter推荐的单间距字体,否则没有可靠的方法来完成您想要的操作。你可以通过测量字符串来弥补它,但如果使用非等距字体,就会出现无法用空格来弥补的空白


对于单间距字体,它很简单。用空格隔开。使用Console、Courier等。

除非您使用@Scott Hunter推荐的单间距字体,否则没有可靠的方法来完成您想要的任务。你可以通过测量字符串来弥补它,但如果使用非等距字体,就会出现无法用空格来弥补的空白


对于单间距字体,它很简单。用空格隔开。使用控制台、信使等。

请提供示例输入和所需输出。@harpo提供了所需示例output@ScottHunter也许我对这个问题想得太远了!你能举一个单间距字体的例子吗?@M.Babcock所以微软的无衬线字体不是固定宽度,但无衬线字体是固定宽度?请提供输入和所需输出的示例。@harpo提供了所需的示例output@ScottHunter也许我对这个问题想得太远了!你能举一个单间距字体的例子吗?@M.Babcock所以微软的无衬线字体不是固定宽度,但无衬线字体是固定宽度?就MS而言,这是一个跛脚的问题。看起来我让这个问题变得比实际困难得多。你和斯科特是对的,谢谢!看起来我让这个问题变得越来越难了。你和斯科特是对的,谢谢!