C# 对齐多行字符串c控制台应用程序

C# 对齐多行字符串c控制台应用程序,c#,console-application,vertical-alignment,C#,Console Application,Vertical Alignment,我正在制作一个21点游戏,并希望在玩家抽牌时将这些牌彼此相邻显示。我将卡片保存为卡片对象中的字符串,字符串看起来有点像这样,我不知道如何将其放在这里: public void CreateDeck() { myDeck[0] = new Card(1, "hearts", @" ______________ | A | | | | | | | | HEARTS

我正在制作一个21点游戏,并希望在玩家抽牌时将这些牌彼此相邻显示。我将卡片保存为卡片对象中的字符串,字符串看起来有点像这样,我不知道如何将其放在这里:

public void CreateDeck()
    {
        myDeck[0] = new Card(1, "hearts", @"
 ______________
| A            |
|              |
|              |
|              |
|    HEARTS    |
|              |
|              |
|            A |
|______________|", @" 
 ______________
|//////////////|
|//////////////|
|//////////////|
|//////////////|
|//////////////|
|//////////////|
|//////////////|
|//////////////|
|//////////////|");
心的王牌基本上就是我想要输出的。我可以输出卡,但每次我输出第二张卡时,它都会转到一个新行,而不是第一张卡的旁边

我希望输出像这样显示玩家和经销商的手

 ______________   ______________  
| J            | | 10           |
|              | |              |
|              | |              |
|              | |              |
|     CLUBS    | |    HEARTS    |
|              | |              | 
|              | |              |
|            J | |           10 |
|______________| |______________|

您可以尝试在绘制时重新绘制整套卡片。将这些卡片保存在一个集合中,比如说,卡片有一种输出艺术的方法,在这里凌驾于public ToString之上,然后您将需要按回车进行拆分,并按如下所示逐行绘制。正如其他人所建议的那样,你会发现在Windows应用程序中这样做要容易得多

       var cardLines = cards.Select(x =>
        x.ToString().Split('\r').ToList().Select(y => y.Replace("\r", string.Empty).Replace("\n", string.Empty)
        ).ToList()).ToList();
        var maximumCardHeight = cardLines.Max(x => x.Count);
        for (var i = 0; i < maximumCardHeight - 1; i++)
        {
            cardLines.ForEach(x =>
            {
                if (i < x.Count)
                    Console.Write(x[i]);
            });
            Console.WriteLine();
        }

对于您可以使用的控制台应用程序,但似乎带有网格控件的windows应用程序要容易得多。请共享一些显示卡类和字符串显示方式的代码。我不知道您的意思是:相邻输出多个ascii卡?你必须展示一些可以借鉴的东西。你希望你的输出看起来像什么,你尝试过哪些不起作用的东西?不能通过这个问题告诉你想要什么,但可能是string.Format{0,10},cardString;将字符串设置为10个字符或任意多个字符。这非常有用,谢谢!但有一个问题,第二张牌的顶部离它应该在的位置还有一个空间。你知道怎么解决这个问题吗?我想这可能取决于你的卡片艺术。您使用的是文本字符串运算符,后跟回车符,回车符被输入到拆分中。试着摆脱马车返回。