I have a list of 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});
}
This results in a list of Blocks, each of which contains a list of Channels.
e.g.
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
I need to pivot this list so that I have a list of Channels that contain each Block for that channel.
e.g.
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
Is there a quick way, (e.g. with LINQ) to do this?
Edit
Channel and Block are defined as:
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; }
}
ChannelCollectionItems?index++, i don't see this variable?