using System.Collections.Generic;
public static void Main()
var tools = new List<Tool>()
new Tool {Id=444, Number=121, Source="Master"},
new Tool {Id=777, Number=121, Source="M1"},
new Tool {Id=333, Number=51, Source="Master"},
new Tool {Id=555, Number=61, Source="Master"},
new Tool {Id=848, Number=51, Source="M1"}
List<Tool> distinctTool = tools.GroupBy(p => p.Number).Select(f => f.OrderByDescending(q => q.Source == "M1").First()).ToList();
foreach(var Too in distinctTool)
Console.WriteLine("Number" +Too.Number);
Console.WriteLine("Source "+Too.Source);
public int Id { get; set; }
public int Number { get; set; }
public string Source { get; set; }