using System;
using System.Linq;
public class Range
{
public int Start { get; set; }
public int End { get; set; }
}
public class Item
{
public int Number { get; set; }
}
public class Test
{
public static void Main()
{
var ranges = new Range[]
{
new Range{Start = 1, End = 5},
new Range{Start = 6, End = 10}
};
var items = new Item[]
{
new Item{Number = 3},
new Item{Number = 4},
new Item{Number = 7},
new Item{Number = 9}
};
var rangeGroups = ranges
.Select(r=> new {Range=r, Items=items.Where(i=> (r.Start <= i.Number) && (i.Number <= r.End))});
foreach(var rangeGroup in rangeGroups)
{
Console.WriteLine("Start: {0} End:{1}",rangeGroup.Range.Start, rangeGroup.Range.End );
foreach(Item item in rangeGroup.Items)
{
Console.WriteLine("\tItem: {0}",item.Number);
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCgpwdWJsaWMgY2xhc3MgUmFuZ2UKewogICAgcHVibGljIGludCBTdGFydCB7IGdldDsgc2V0OyB9CiAgICBwdWJsaWMgaW50IEVuZCB7IGdldDsgc2V0OyB9Cgp9CgpwdWJsaWMgY2xhc3MgSXRlbQp7CiAgICBwdWJsaWMgaW50IE51bWJlciB7IGdldDsgc2V0OyB9Cn0KCgpwdWJsaWMgY2xhc3MgVGVzdAp7CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQkJCgkJdmFyIHJhbmdlcyA9IG5ldyBSYW5nZVtdCgkJewoJCSAgICBuZXcgUmFuZ2V7U3RhcnQgPSAxLCBFbmQgPSA1fSwKCQkgICAgbmV3IFJhbmdle1N0YXJ0ID0gNiwgRW5kID0gMTB9CgkJfTsKCQoJCXZhciBpdGVtcyA9IG5ldyBJdGVtW10KCQl7CgkJICAgIG5ldyBJdGVte051bWJlciA9IDN9LAoJCSAgICBuZXcgSXRlbXtOdW1iZXIgPSA0fSwKCQkgICAgbmV3IEl0ZW17TnVtYmVyID0gN30sCgkJICAgIG5ldyBJdGVte051bWJlciA9IDl9CgkJfTsKCQkKCQl2YXIgcmFuZ2VHcm91cHMgPSByYW5nZXMKCQkJLlNlbGVjdChyPT4gbmV3IHtSYW5nZT1yLCBJdGVtcz1pdGVtcy5XaGVyZShpPT4gKHIuU3RhcnQgPD0gaS5OdW1iZXIpICYmIChpLk51bWJlciA8PSByLkVuZCkpfSk7CgkJCQoJCWZvcmVhY2godmFyIHJhbmdlR3JvdXAgaW4gcmFuZ2VHcm91cHMpCgkJewoJCQlDb25zb2xlLldyaXRlTGluZSgiU3RhcnQ6IHswfSBFbmQ6ezF9IixyYW5nZUdyb3VwLlJhbmdlLlN0YXJ0LCByYW5nZUdyb3VwLlJhbmdlLkVuZCApOwoJCQkKCQkJZm9yZWFjaChJdGVtIGl0ZW0gaW4gcmFuZ2VHcm91cC5JdGVtcykKCQkJewoJCQkJQ29uc29sZS5Xcml0ZUxpbmUoIlx0SXRlbTogezB9IixpdGVtLk51bWJlcik7CgkJCX0KCQl9CgkKCX0KfQ==