C#leftpad或rightpad实现某种格式

问题描述

我使用的是unity,但问题更多是c#。

我的同事(设计师)给了我一个文本框(或类似名称)。
想象框1是标题,框2是他给我的标题(我需要将字符串返回给我的那个)。

Image Reference

因此,我创建了一个函数,用于从数据库返回框2内容的字符串。
我设法创建了某种如下所示的字符串:

08/12/2020  
Tom  
Sarah  
Holden  
Jimmy

但我正在努力创建首选格式,

08/12/2020     Tom  
               Sarah  
               Holden  
               Jimmy

我尝试使用dateVal.padright(20,' ');之类的右键盘

但是我如何将其应用于没有日期的下一行?

我也应该使用左键盘吗?

编辑:我是Unity的新手~~

解决方法

哦,我的..我忘记了这个问题。顺便说一句,我使用了@CodeCaster提到的方法

使用两个彼此相邻对齐的文本框,并在其中打印日期,然后 对方的名字

并将其放在滚动矩形中。

,

您好,请尝试使用下面的函数,这是假设源值是一个以换行符为分隔符的字符串。

 public static string FormatSource(string source)
    {
        var sb = new StringBuilder();
        var values = source.Split(Environment.NewLine);
        DateTime dateValue;
        int padCount = 0;
        foreach(var value in values)
        {
            if(DateTime.TryParseExact(value,"mm/dd/yyyy",System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None,out dateValue))
            {
                padCount = 10;
                sb.Append(value);
            }
            else
            {
                sb.Append(value.PadLeft(padCount) + Environment.NewLine);
                padCount = 20;
            }
        }
        return sb.ToString();
    }