I have the following code:
public class DataClass
{
  public int Number1 {get; set;}
  public int Number2 {get; set;}
}
List<DataClass> list = new List<DataClass>();
list.Add(new DataClass {Number1= 1, Number2 = 100});
list.Add(new DataClass {Number1= 2, Number2 = 100});
list.Add(new DataClass {Number1= 3, Number2 = 101});
list.Add(new DataClass {Number1= 4, Number2 = 102});
list.Add(new DataClass {Number1= 5, Number2 = 103});
list.Add(new DataClass {Number1= 6, Number2 = 104});
list.Add(new DataClass {Number1= 7, Number2 = 104});    
As you can see, I have a duplicate values for Number2 (i.e., two DataClass objects with Number2 set to 100, and two set to 104). I want to generate a dictionary like the one below which excludes these duplicates:
Key = 1, value = {Number1 = 1, Number2 = 100}
                 {Number1 = 3, Number2 = 101}
                 {Number1 = 4, Number2 = 102}
                 {Number1 = 5, Number2 = 103}
                 {Number1 = 6, Number2 = 104}
Key = 2, value = {Number1 = 2, Number2 = 100}
                 {Number1 = 7, Number2 = 104}
I would like to receive an optimal algorithm for solving this.
 
     
    
 
     
    