我有一个 List<String>
喜欢
List<String> MyList=new List<String>
{
"101010",
"000000",
"111000"
};
我需要用“MyList”创建一个新列表(List<String>
)。因此“MyList”中的行成为新列表中的列,而列成为行
所以结果会是这样
{
"101",
"001",
"101",
"000",
"100",
"000"
}
现在我正在使用 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());
}
输出:
101
001
101
000
100
000
关于C#:如何使用 LINQ 或 LAMBDA 表达式操作 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838168/