fork download
  1. using System;
  2. using System.Linq;
  3.  
  4.  
  5. public class Range
  6. {
  7. public int Start { get; set; }
  8. public int End { get; set; }
  9.  
  10. }
  11.  
  12. public class Item
  13. {
  14. public int Number { get; set; }
  15. }
  16.  
  17.  
  18. public class Test
  19. {
  20.  
  21. public static void Main()
  22. {
  23.  
  24. var ranges = new Range[]
  25. {
  26. new Range{Start = 1, End = 5},
  27. new Range{Start = 6, End = 10}
  28. };
  29.  
  30. var items = new Item[]
  31. {
  32. new Item{Number = 3},
  33. new Item{Number = 4},
  34. new Item{Number = 7},
  35. new Item{Number = 9}
  36. };
  37.  
  38. var rangeGroups = ranges
  39. .Select(r=> new {Range=r, Items=items.Where(i=> (r.Start <= i.Number) && (i.Number <= r.End))});
  40.  
  41. foreach(var rangeGroup in rangeGroups)
  42. {
  43. Console.WriteLine("Start: {0} End:{1}",rangeGroup.Range.Start, rangeGroup.Range.End );
  44.  
  45. foreach(Item item in rangeGroup.Items)
  46. {
  47. Console.WriteLine("\tItem: {0}",item.Number);
  48. }
  49. }
  50.  
  51. }
  52. }
Success #stdin #stdout 0.04s 24280KB
stdin
Standard input is empty
stdout
Start: 1 End:5
	Item: 3
	Item: 4
Start: 6 End:10
	Item: 7
	Item: 9