使用以下代码在 Windows 应用程序中创建的测试:
public void Test1()
{
List<List<String>> list = new List<List<string>>() {
new List<String>() { "XYZ", "ABC","100" },
new List<String>() { "X", "ABC", "100"},
};
string text = "", a = "", b = "", c = "";
for (int i = 0; i < list.Count; i++)
{
a = list[i][0];
b = list[i][1];
c = list[i][2];
text += String.Format("{0, -8} {1,-4} {2,8}{3}", a, b, c, Environment.NewLine);
}
MessageBox.Show(text);
}
照你说的做,但在使用控制台应用程序检查后,使用以下代码:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Test1();
Console.ReadKey();
}
public static void Test1()
{
List<List<String>> list = new List<List<string>>() {
new List<String>() { "XYZ", "ABC","100" },
new List<String>() { "X", "ABC", "100"},
};
string text = "", a = "", b = "", c = "";
for (int i = 0; i < list.Count; i++)
{
a = list[i][0];
b = list[i][1];
c = list[i][2];
text += String.Format("{0, -8} {1,-4} {2,8}{3}", a, b, c, Environment.NewLine);
}
Console.WriteLine(text);
}
}
}
它做你所期望的。
因此,测试表明如果正在做它应该做的事情,但是由于缺少相同宽度的字体MessageBox
,它没有正确排列。但另一方面,在控制台应用程序使用相同宽度的字体时,它确实对齐。