我有一个清单Channels
var blocks = new List<Block>();
foreach (var channel in ChannelsCollection)
{
    var ch = channel.ChannelCollectionItems.Select(item => new Channel
    {
        Id = channel.Id, 
        Delay = item.Delay,
        Trigger = item.Trigger,
        Restore = item.Restore,
    }).ToList();
    blocks.Add(new Block { Id = index++ , Channels = ch});
}
这会产生一个 的列表Blocks,每个列表都包含一个 的列表Channels。
例如
Block1          Block2          Block3          Block4
    Channel1        Channel1        Channel1        Channel1
        Val1            Val1            Val1            Val1
        Val2            Val2            Val2            Val2
        Val3            Val3            Val3            Val3
    Channel2        Channel2        Channel2        Channel2
        Val1            Val1            Val1            Val1
        Val2            Val2            Val2            Val2
        Val3            Val3            Val3            Val3
    Channel3        Channel3        Channel3        Channel3
        Val1            Val1            Val1            Val1
        Val2            Val2            Val2            Val2
        Val3            Val3            Val3            Val3
我需要旋转这个列表,以便我有一个Channels包含每个Block频道的列表。
例如
Channel1    
    Block1        Block2        Block3        
        Val1            Val1            Val1  
        Val2            Val2            Val2  
        Val3            Val3            Val3  
Channel2
    Block1        Block2        Block3        
        Val1            Val1            Val1  
        Val2            Val2            Val2  
        Val3            Val3            Val3            
Channel3
    Block1        Block2        Block3        
        Val1            Val1            Val1  
        Val2            Val2            Val2  
        Val3            Val3            Val3        
有没有一种快速的方法(例如使用 LINQ)来做到这一点?
编辑
Channel并Block定义为:
public class Channel
{
    public int? Id { get; set; }
    public string Delay { get; set; }
    public string Trigger { get; set; }
    public string Restore { get; set; }
}
public class Block
{
    public int Id { get; set; }
    public List<Channel> Channels { get; set; }
}