I am wanting to loop through this list of name value pairs and grab them in groups of 4.
The data would be like:
value1 1
value2 1
value3 1
value4 1
I think you're looking for GroupBy.
There's nothing built into the framework to do this easily, but MoreLINQ has the Batch method:
IEnumerable<IEnumerable<DataItem>> groups = source.Batch(4);
foreach (IEnumerable<DataItem> group in groups)
{
foreach (DataItem item in group)
{
...
}
}
This will group by every 4 items (a, b, c, d), (e, f, g, h), (i, j)
var abc = new string[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };
var xyz = abc.Select((e, i) => new { Item = e, Grouping = (i / 4) }).GroupBy(e => e.Grouping);