Given the following class structure need to extract various members based on custom property value:
class Item{
    public Item(int position, Image image)
    {
        Position = position;
        Image = image;
    }
    public int Position { get; set; }
    public Image Image { get; set; }
    public int Quality { get; set; }
}
class Items : List<Item> {}
class ConsolidatedItems : List<Items> {}
How do I get a list of "best" Items based on Quality joined by Position (in other words group items where Position is the same):
Input
Items1:
Item1: 1, ImageBinary, 100
Item2: 2, ImageBinary, 98
Item3: 3, ImageBinary, 45
Item4: 4, ImageBinary, 66
Items2:
Item1: 1, ImageBinary, 76
Item2: 2, ImageBinary, 80
Item4: 4, ImageBinary, 33
Items3:
Item1: 2, ImageBinary, 76
Item2: 3, ImageBinary, 80
Item4: 4, ImageBinary, 90
Output
BestItems:
Item1: 1, ImageBinary, 100 (from Items1)
Item2: 2, ImageBinary, 98 (from Items1)
Item3: 3, ImageBinary, 80 (from Items3)
Item4: 4, ImageBinary, 90 (from Items4)
 
     
    