Если есть класс виджетов, как это:
public class Widget
{
public double Price { get; set; }
public string Type { get; set; }
public int ID { get; set; }
public string Name { get; set; }
}
И создайте их список:
List<Widget> Widgets = new List<Widget>
{
new Widget {ID = 1, Name = "One", Price = 3.00, Type = "Gooy"},
new Widget {ID = 2, Name = "Two", Price = 5.00, Type = "Crispy"},
new Widget {ID = 2, Name = "Three", Price = 3.00, Type = "Hard"},
new Widget {ID = 2, Name = "Four", Price = 3.00, Type = "Chewy"},
new Widget {ID = 2, Name = "Five", Price = 2.50, Type = "Gooy"}
};
А потом я вызываю IEnumerable.Distinct с помощью специального компаратора, например:
IEqualityComparer<Widget> widgetComparer =
new LambdaComparer<Widget>((item1, item2) => item1.Price == item2.Price);
Widgets.Distinct(widgetComparer);
Тогда (как я понимаю) должно быть возвращено 3 объекта (по одному для каждой ценовой категории).
Какой тип 3,00 (Gooy, Hard или Chewy)?
Он выбирает один? (Я пытаюсь лучше понять различие, потому что мое настоящее различие не дает мне отличных результатов.)