在c#中交换两个列表

时间:2017-08-18 10:29:45

标签: c#

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

List<List<decimal>> mylist;

矩阵的大小为nxm,我该如何交换这些列表?即。

mylist[i][j] --> mylist[j][i]

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

mylist^T 

1 个答案:

答案 0 :(得分:2)

你可以使用Linq来实现没有for循环的那样:

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();

我希望对你有所帮助:)。