我有一个清单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; }
}