using System.Collections.Generic;
public static void Main()
var listaDeProdutos = new List<Produto>();
listaDeProdutos.Add(obj1);
listaDeProdutos.Add(obj2);
listaDeProdutos.Add(obj3);
listaDeProdutos.Add(obj4);
listaDeProdutos.Add(obj5);
var novaLista = listaDeProdutos.OrderBy(o => o.Valor).GroupBy(x => x.Nome).Select(x => x.First()).ToList();
foreach(var produto in novaLista)
Console.WriteLine(string.Format("Nome do produto: {0}, Valor do Produto: {1}", produto.Nome, produto.Valor));
public string Nome { get; set; }
public decimal Valor { get; set; }