C# 帮助进行字符串操作
我正在做一些数据操作和日志记录,这些记录已经被更新,并显示了它们的字段 我简化了下面的示例,但基本上我将行附加到stringbuilder,然后将其写入文本文件 我将行附加为:C# 帮助进行字符串操作,c#,string,C#,String,我正在做一些数据操作和日志记录,这些记录已经被更新,并显示了它们的字段 我简化了下面的示例,但基本上我将行附加到stringbuilder,然后将其写入文本文件 我将行附加为: changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.name, Customer2.name)); changedValues.AppendLine(string.Format("NEW VALUE: {0}
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
这使得阅读起来比看起来更困难:
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
我怎样才能做到这一点
提前谢谢
Customer1.name.PadRight(15, ' ')
并对其他值执行相同操作。使用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
如果您知道值的最大宽度,则可以使用。您应该提前定义可能最长的第一个值。例如20:
sb.AppendFormat("NEW VALUE: {0,-20}| OLD VALUE {1}\r\n", Customer1.name, Customer2.name);
看看
格式是{index[,alignment][:formatString]}
可选的对齐组件是一个
有符号整数,表示
首选格式化字段宽度。如果
对齐的值小于
格式化字符串的长度,
路线将被忽略,并且
格式化的字符串用作
字段宽度。中的格式化数据
如果未对齐,则字段右对齐
如果对齐,则为正对齐和左对齐
答案是否定的。如果需要填充,
使用空白。逗号是
如果指定对齐,则需要
虽然它取决于
Customer1.*
字段的长度,但您可以使用\t
(或其中许多字段,取决于最大长度):string.Format(“新值:{0}\t |…,…)
。