Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 帮助进行字符串操作_C#_String - Fatal编程技术网

C# 帮助进行字符串操作

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}

我正在做一些数据操作和日志记录,这些记录已经被更新,并显示了它们的字段

我简化了下面的示例,但基本上我将行附加到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
这使得阅读起来比看起来更困难:

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 |…,…)