将字符串设置到某个位置 - c#

我正在尝试通过电子邮件发送清单,但无法将行排成一行。

string aheading = "Defects:";
string bheading = "Comments:";

string result = aheading.PadRight(20, ' ') + bheading.PadRight(20, ' ') + Environment.NewLine;

foreach (var item in chkList.CheckItems)
{
    if (item.Defect == true)
    {
        result += item.ItemTitle.Trim().PadRight(20,' ') +  item.Comment.Trim().PadRight(20,' ') + Environment.NewLine ; 
    }
}

在数据库中有一个缺陷和注释列表,因此代码循环显示每个缺陷及其注释,但看起来像这样:

Defects:            Comments:                     
Vehicle Secure           comment1                      
Brakes              comment2

有没有办法让评论排成一行?就像vehicle secure字符串将注释推出。缺陷列表可能很长,我不知道每个字符串将持续多长时间,因此我可以将注释设置为在特定位置显示吗?

参考方案

您应该计算字符串的长度。

首先,遍历所有CheckItems并找到最长的ItemTitle

其次,使变量padding放入最大填充量。

最后,您可以使用String.Format计算每行的填充

string aheading = "Defects:";
string bheading = "Comments:";

int maxlength = 0;
foreach (var item in chkList.CheckItems)
{
    if (item.ItemTitle.Length > maxlength)
        maxlength = item.ItemTitle.Length;
}

int padding = maxlength + 10;  //10 spaces between the longest 'Defects' and its 'Comments'
string format = "{0,-" + padding + "} {1,-" + padding + "}\r\n"

string result = String.Format(format, "Defects:", "Comments:");

foreach (var item in chkList.CheckItems)
{
    if (item.Defect == true)
    {
        result += String.Format(format, item.ItemTitle, Item.Comment);
    }
}

注意

当前字体中的每个字符应具有相同的宽度。

您应该在邮件中使用Monospaced Font使其正常工作。

如果您希望它适用于每种字体。请参阅@Gelootn的答案。

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

对数字变量使用'.ToString()' - c#

将数值转换为.ToString()时省略string有什么缺点吗?int i = 1234; string s; // Instead of s = "i is " + i.ToString(); // Writing s = "i is " + i; 参考方案 在这种情况下没有什么区别。"Count: &#…

在xpath中选择多个条件 - php

我正在尝试使用来自高尔夫比赛的xml提要,以显示每个高尔夫球手在高尔夫球场上的位置。目前,我想展示符合两个条件的所有高尔夫球手(排在前25名,以及所有加拿大高尔夫球手)。这是xml提要的示例。<GolfDataFeed Type="Leaderboards" Timestamp="3/21/2012 9:18:09 PM&…

Mongo抛出“元素名称'名称'无效”异常 - c#

我正在更新一个简单的字段。var filterDocument = new BsonDocument { { "name", "alice" } }; var newDocument = new BsonDocument { { "name", "Alice" } }; coll…

如何将多值CSV转换为Json - python

我有一个带有4列数据的csv文件,如下所示。type,MetalType,Date,Acknowledge Metal,abc123451,2018-05-26,Success Metal,abc123452,2018-05-27,Success Metal,abc123454,2018-05-28,Failure Iron,abc123455,2018-0…