C# 如何均匀地分隔信息?

C# 如何均匀地分隔信息?,c#,asp.net,email,spacing,C#,Asp.net,Email,Spacing,我想通过电子邮件发送一些车辆信息。 我有所有的代码工作,但间隔信息是一个问题。每辆车都有一个清单,然后通过电子邮件发送该清单。因此,我循环浏览列表并获取缺陷和注释 foreach (var item in chkList.CheckItems) { if (item.Defect == true) { defect += item.ItemTitle + " " + item.Comment + "

我想通过电子邮件发送一些车辆信息。 我有所有的代码工作,但间隔信息是一个问题。每辆车都有一个清单,然后通过电子邮件发送该清单。因此,我循环浏览列表并获取缺陷和注释

foreach (var item in chkList.CheckItems)
        {
            if (item.Defect == true)
            {
                defect += item.ItemTitle + " " +  item.Comment + "\n";
            }
        }

        if (hasDefect == true)
        {
            Utils.ChecklistSendMail("Checklist", ToAddresses.Split(';'),
                "Vehicle Reg: " + reg + "\n" +
                "Checklist No: " + chkList.CheckListNo + "\n"+
                "Date: " + ChecklistDate.ToShortDateString() + "\n" +
                "Defects:                            Comments: " + "\n" + 
                defect);
        }
然后,电子邮件如下所示:

Vehicle Reg: XLZ 8194
Checklist No: 0
Date: 22/03/2016
Defects:                            Comments: 
Vehicle Secure comment1
Brakes comment2
Defects:                     Comments: 
Vehicle Secure               comment1
Brakes                       comment2
我希望缺陷和注释显示如下:

Vehicle Reg: XLZ 8194
Checklist No: 0
Date: 22/03/2016
Defects:                            Comments: 
Vehicle Secure comment1
Brakes comment2
Defects:                     Comments: 
Vehicle Secure               comment1
Brakes                       comment2

如何将缺陷和注释均匀地隔开?

您可以使用支持自动填充的
string.Format

string s = string.Format("{0,-20}{1}", "hello", "world");
哪些产出:

hello               world

如果您对每一行都这样做,并且找到了一个很好的距离(在我的示例代码中为20),那么就可以了。这一切都假定使用单间距字体。

您可以使用支持自动填充的
string.Format

string s = string.Format("{0,-20}{1}", "hello", "world");
哪些产出:

hello               world

如果您对每一行都这样做,并且找到了一个很好的距离(在我的示例代码中为20),那么就可以了。这一切都假定使用单间距字体。

使用
字符串。使用宽度说明符格式化

if (item.Defect == true)
{
    defect += string.Format("{0,-20} {1,-10}\n", item.ItemTitle, item.Comment);
}
如果性能出现问题,还可以使用
StringBuilder.AppendFormat


如果要保证列是对齐的,即使是使用比例字体的客户端,那么也要考虑渲染为HTML并使用<代码> <代码>。

使用<代码>字符串。格式< /代码>宽度指定:

if (item.Defect == true)
{
    defect += string.Format("{0,-20} {1,-10}\n", item.ItemTitle, item.Comment);
}
如果性能出现问题,还可以使用
StringBuilder.AppendFormat


如果要确保列对齐,即使使用比例字体的客户端,然后考虑渲染为HTML并使用<代码> <代码>。

如果你使用一个表单,那么为什么不使用一个框架,比如“代码> Bootstrap ”?如果你使用一个表单,那么为什么不使用一个框架,比如“代码> Bootstrap ?谢谢你的帮助。我将其设置为40的距离,但第一条评论的移动超过了第二条。我希望每一排都是直线下降的,有什么问题吗?我肯定你在某个地方犯了一个错误。我认为问题在于
车辆安全
长,因此它将评论推得更远。我希望所有的评论都排成一行up@user123456789在你的问题中添加你的确切代码——要么你没有;请不要指定足够长的宽度,否则您的实现不正确。还要注意,当使用比例字体渲染时,填充的“车辆源”将比填充的“灯光”长。谢谢您的帮助。我将其设置为40的距离,但第一条评论的移动超过了第二条。我希望每一排都是直线下降的,有什么问题吗?我肯定你在某个地方犯了一个错误。我认为问题在于
车辆安全
长,因此它将评论推得更远。我希望所有的评论都排成一行up@user123456789在你的问题中添加你的确切代码——要么你没有;请不要指定足够长的宽度,否则您的实现不正确。还要注意,当使用比例字体渲染时,填充的“车辆源”将比填充的“灯光”长。