Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Main()
- {
- var bronze = new ElementType { Name = "Bronze" };
- var steel = new ElementType { Name = "Steel" };
- var weakBronzeBeam = new Beam { Ix = 50, ElementType = bronze };
- var strongBronzeBeam = new Beam { Ix = 100, ElementType = bronze };
- var weakSteelBeam = new Beam { Ix = 80, ElementType = steel };
- var strongSteelBeam = new Beam { Ix = 200, ElementType = steel };
- var data = new [] { weakBronzeBeam, strongBronzeBeam, weakSteelBeam, strongSteelBeam };
- var iRequired = 70;
- var smallestBeamForTypes =
- from anyBeam in data
- where anyBeam.Ix >= iRequired
- group anyBeam by anyBeam.ElementType into beamTypeGroups
- let minIx = beamTypeGroups.Min(beam => beam.Ix)
- select new {
- ElementType = beamTypeGroups.Key,
- SmallestBeam = beamTypeGroups.First(beam => beam.Ix == minIx)
- };
- foreach(var smallestBeamForType in smallestBeamForTypes)
- {
- String.Format("For the element type {0} the smallest beam is {1}",
- smallestBeamForType.ElementType , smallestBeamForType.SmallestBeam).Dump();
- }
- }
- class ElementType
- {
- public string Name { get; set; }
- public override string ToString()
- {
- return Name;
- }
- }
- class Beam
- {
- public int Ix { get; set; }
- public ElementType ElementType { get; set; }
- public override string ToString()
- {
- return Ix.ToString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment