按列打印二维列表(旋转)到控制台C#

按列打印二维列表(旋转)到控制台C#,c#,list,rotation,console-application,C#,List,Rotation,Console Application,我有一些列表要按列打印到控制台。 列表如下所示 List<List<string>> my2DimList = new List<List<string>>(); 我想按以下方式将字符打印到控制台。 如果列表中有两个列表: Jon Mike 然后我想这样打印: e nk oi JM 最好的方法是什么? 我已经考虑过一些轮换,但是列表的长度不同让我们先把预备赛放一边: var list = new List<List<st

我有一些列表要按列打印到控制台。 列表如下所示

List<List<string>> my2DimList = new List<List<string>>();
我想按以下方式将
字符打印到控制台。

如果列表中有两个列表:

Jon
Mike    
然后我想这样打印:

 e
nk
oi
JM
最好的方法是什么?
我已经考虑过一些轮换,但是列表的长度不同

让我们先把预备赛放一边:

var list = new List<List<string>> 
    { 
        new List<string> { "J", "o", "n" }, 
        new List<string> { "M", "i", "k", "e"} 
    };

int h = list.Count;
int w = list.Max(l => l.Count);
现在你想从下往上打印,而不是从上往下打印。因此,当我们计算垂直指数时,我们从最大值开始倒计时,而不是从最小值开始倒计时:

for (int j = w - 1; j >= 0; j--)
{
    for (int i = 0; i < h; i++)
    {
        if (j < list[i].Count)
            Console.Write(list[i][j]);
        else
            Console.Write(" ");
    }

    Console.WriteLine();
}

// Prints:
//  e
// nk
// oi
// JM
用于(int j=w-1;j>=0;j--)
{
对于(int i=0;i

就在这里。按特定顺序打印字符串只是一系列反转。

@Media我在问题的最后说明了这一点。我被告知运算符<不能应用于int类型和方法组的操作数。我做错了什么?此外,无法将带[]的索引应用于类型为“items”的表达式。“items”是我通过对dbcontext执行ToList()操作而从其获取的列表名称。@Spero
Count
list
的length属性,但它通常也是可枚举项的LINQ方法。如果您不能使用索引器或调用列表变量的
Count
属性,那么很可能它实际上不是一个
list
,而是某种其他类型的枚举。
for (int i = 0; i < h; i++)
{
    for (int j = 0; j < w; j++)
    {
        if (j < list[i].Count)
            Console.Write(list[i][j]);
        else
            Console.Write(" ");
    }

    Console.WriteLine();
}

// Prints:
// Jon
// Mike
for (int j = 0; j < w; j++)
{
    for (int i = 0; i < h; i++)
    {
        if (j < list[i].Count)
            Console.Write(list[i][j]);
        else
            Console.Write(" ");
    }

    Console.WriteLine();
}

// Prints:
// JM
// oi
// nk
//  e
for (int j = w - 1; j >= 0; j--)
{
    for (int i = 0; i < h; i++)
    {
        if (j < list[i].Count)
            Console.Write(list[i][j]);
        else
            Console.Write(" ");
    }

    Console.WriteLine();
}

// Prints:
//  e
// nk
// oi
// JM