C#:如何使用LINQ或LAMBDA表达式操作List <String>

Tho*_*eld 2 c# linq lambda

我有一个List<String>喜欢

 List<String> MyList=new List<String>
    {
    "101010",
    "000000",
    "111000"
    };
Run Code Online (Sandbox Code Playgroud)

我需要List<String>使用"MyList" 创建一个新列表().所以"MyList"中的行成为新List中的列,列成为行

所以结果就像

 {
    "101",
    "001",
    "101",
    "000",
    "100",
    "000"
  }
Run Code Online (Sandbox Code Playgroud)

现在我正在使用nested for循环来做到这一点.

有没有办法使用LINQLAMBDA表达这样做

ang*_*son 6

这是一个LINQPad脚本,可以解决这个问题:

void Main()
{
    List<String> MyList = new List<String>
    {
        "101010",
        "000000",
        "111000"
    };
    Transpose(MyList).ToList().Dump();
}

static IEnumerable<String> Transpose(IEnumerable<String> strings)
{
    return from i in Enumerable.Range(0, strings.First().Length)
           select new string((from s in strings select s[i]).ToArray());
}
Run Code Online (Sandbox Code Playgroud)

输出:

101
001
101
000
100
000
Run Code Online (Sandbox Code Playgroud)