我有一个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循环来做到这一点.
有没有办法使用LINQ或LAMBDA表达这样做
这是一个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)
| 归档时间: |
|
| 查看次数: |
2017 次 |
| 最近记录: |