C# 在c中交换两个列表#

C# 在c中交换两个列表#,c#,C#,我有一个列表列表(一个矩阵,通过matlab的web.api HTTP POST发送) 在Matlab中,操作将是mylist'或在数学上下文中(转置) 您可以使用Linq来实现这一点,而不必对循环执行以下操作: var swapedList = mylist .SelectMany((l, i) => l.Select((d, j) => new { i, j, d })) .GroupBy(l=>l.j) .Select(l=>l.Selec

我有一个列表列表(一个矩阵,通过matlab的web.api HTTP POST发送)

在Matlab中,操作将是
mylist'
或在数学上下文中(转置)


您可以使用
Linq
来实现这一点,而不必对
循环执行以下操作:

var swapedList = 
   mylist
   .SelectMany((l, i) => l.Select((d, j) => new { i, j, d }))
   .GroupBy(l=>l.j)
   .Select(l=>l.Select(ll=>ll.d).ToList());
   .ToList();

我希望能对您有所帮助:)

有试过的吗?示例列表和可用的预期结果?@TimSchmelter问题中的预期结果,@derloopkat not required,可能是
mxn
(如问题所述)@robert:那么,这就是我的答案:
mylist[i][j]=mylist[j][i]
@TimSchmelter这是行不通的,你知道的。我认为这个问题很清楚,至少有人(AliAdlavaran)马上就明白了。我认为这个操作被称为“转置”-@RobertStettler我也是,我认为Tim试图让任何人都能理解这个问题(但我不会判断在这个案例中是否真的需要一个例子),它工作得非常完美
mylist[i][j] --> mylist[j][i]
mylist^T 
var swapedList = 
   mylist
   .SelectMany((l, i) => l.Select((d, j) => new { i, j, d }))
   .GroupBy(l=>l.j)
   .Select(l=>l.Select(ll=>ll.d).ToList());
   .ToList();