我正在做一些数据处理和记录已更新的记录及其字段。
我简化了下面的示例,但基本上我将行附加到stringbuilder然后将其写入文本文件
我追加行:
changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.name, Customer2.name));
changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.number, Customer2.number));
changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.phone, Customer2.phone))
我的问题是名称,电话和号码(加上更多)有不同的长度,所以日志文件看起来像:
NEW VALUE: blabla | OLD VALUE blablabla
NEW VALUE: 123123123123123 | OLD VALUE 134
NEW VALUE: 213213232 | OLD VALUE 12333322333
这使得阅读起来比看起来更难:
NEW VALUE: blabla | OLD VALUE blablabla
NEW VALUE: 123123123123123 | OLD VALUE 134
NEW VALUE: 213213232 | OLD VALUE 12333322333
我怎样才能做到这一点?
提前致谢。
答案 0 :(得分:2)
您应该事先定义最长的第一个值。例如20:
sb.AppendFormat("NEW VALUE: {0,-20}| OLD VALUE {1}\r\n", Customer1.name, Customer2.name);
答案 1 :(得分:1)
changedValues.AppendLine(string.Format("NEW VALUE: {0:-20} | OLD VALUE {1}", Customer1.name, Customer2.name));
格式为{ index[,alignment][:formatString]}
可选的对齐组件是a 有符号整数表示 首选格式化字段宽度。如果 对齐的值小于 格式化字符串的长度, 对齐被忽略和长度 格式化的字符串用作 场宽。格式化的数据 如果对齐,则字段右对齐 正对齐和左对齐,如果对齐 是否定的。如果需要填充, 使用了空白区域。逗号是 如果指定了对齐,则需要。
答案 2 :(得分:0)
Customer1.name.PadRight(15, ' ')
对其他值也这样做。
答案 3 :(得分:0)
像这个例子一样使用PadRight:
static void Main()
{
string[] a = new string[]
{
"cat",
"poodle",
"lizard",
"frog",
"photon"
};
// Output the header.
Console.Write("Key".PadRight(15));
Console.WriteLine("Value");
// Output array.
foreach (string s in a)
{
Console.Write(s.PadRight(15));
Console.WriteLine("noun");
}
}
Output
Key Value
cat noun
poodle noun
lizard noun
frog noun
photon noun
答案 4 :(得分:0)
如果您知道值的最大宽度,则可以使用String.PadRight()。